Our newest feature: Bug Hunter

Automatically detect potentially dangerous bugs, then see the steps to implement a fix

Search for difficult to detect bugs

  • Dangling Pointer

  • Division by Zero

  • Memory Leak

  • Null Pointer Dereference

  • Stack Address Escape

  • Undefined Call

  • Unintialized Value

  • Virtual Call

Get notified when bugs are found in your code

Bug Hunter will run in the background while you work and can be setup as part of your CI/CD pipeline so every commit can be bug free.

See the bug highlighted directly in your code, with a detailed explanation for each part.

Walk-through how to reproduce the bug

Bug Hunter will show you step by step how the bug can be recreated.

Try our new Visual Studio Code extension

Free with every installation of Understand

The Understand extension for VS Code makes our most used features even more accessible. Find the underlying types for variables, view control flow graphs, utilize thousands of code compliance checks, and perform a full analysis of your project in a fraction of the time compared to similiar extensions.

Go To Download

Trusted by over 20,000 developers

​“Understand accelerates my understanding of large source code repositories.”

Chris Rhodes, Senior Software Engineer
Dell Inc.


Understand your Code

Have you recently inherited confusing legacy code? Understand is here to help.

Analyze Dependencies

Blindly changing legacy code can lead to disaster. Know what your changes will affect before you even start writing.

Navigate Cross-References

Navigating legacy code doesn't need to feel like an endless maze. Quickly navigate references to create a mental map of the code base.

View Call-Trees

Expand a function's call tree to see what any changes might affect. You can also view Butterfly, Control Flow, and many other useful graphs.

Static code Analysis

Verify your Code

Does your project require strict coding standards? Understand has the capability to check your code against industry, common, or custom standards.

Introducing CodeCheck, our code compliance solution

CodeCheck can be integrated into your CI/CD pipeline to run with every code check-in and notify team members when a compliance check has failed.

Checks against industry standards like Autosar and MISRA C/C++
Our Bug Hunter checks look for common bugs like memory leaks and dangling pointers Learn More
Let our trained software engineers write your custom standards for you! Learn How
See Pricing

Visualize your Code

Quickly see how your source code is structured, organized, and related. See Control Flow, Call Trees, Dependency, Butterfly, UML Class, and many other graph types. All our graphs are interactive and customizable, expand or contract your graph to see exactly what you need.

See Pricing

Quantify your Code

Do you need help locating the "problem" areas in your code? Understand comes bundled with dozens of metrics that help with exactly this scenario.

Measure Twice, Code Once

Understand your code's cyclomatic complexity by using various browser and display options
Receive detailed metrics about your code at the file, class, and entity levels
Export a full list of your metrics to an HTML or CSV file

Automate your Code

Do you prefer complete control over your coding environment? Understand comes bundled with a robust API to unlock your project's full potential.

An API for Toolsmiths

Our API allows the creation of custom graphs, metrics, and lexical analysis. Integrating with your current tools is now easier than ever! Learn More

Continuous Integration

Verify code compliance, ensure code complexity stays below a specified threshold, or email the team a code comparison graph all from your existing pipeline. Learn More

Custom Scripting

Create and enforce any custom coding standard. We can teach you how to write a standard or simply hire us to handle the entire process for you! Learn More

1def fileCleanText(file):
2	returnString = "";
4	# Open the file lexer with macros expanded and
5	# inactive code removed
6	for lexeme in file.lexer(False,8,False,True):
7		if(lexeme.token() != "Comment"):
8			# Go through lexemes in the file and append
9			# the text of non-comments to returnText
10			returnString += lexeme.text();
11			return returnString;
13# Search for the first file named ‘test’ and print
14# the file name and the cleaned text
15file = db.lookup(".test.","file")[0];
16print (file.longname());

Explore your Code

Navigating complex code relationships has never been easier. Hyper-Xref technology and the tools in Understand make you a safer, smarter engineer less likely to add bugs as you change code.

See Pricing
Code comparison

Compare your Code

Quickly see the difference between two project states. View changes by files, folders, entities or architectures. View your changes as a text comparison or in a tree map. Just specify the git revision you would like to compare against or compare two databases.

See Pricing

Save Time with Understand

“What would have previously taken me several days (or weeks) can now be accomplished in a matter of hours… It’s the Swiss army knife of static analysis tools.”

Randall Landaiche


​“[Understand] is good for discovering the structure of the code dependencies and call-paths... it would have taken me hours to generate the same thing on my own.”

Paul Hyland

Lockheed Martin

​“Understand accelerates my understanding of large source code repositories.”

Chris Rhodes


Customer Case Studies

Learn how software developers across different industries use Understand to accelerate their workflows.

“[Understand] has great graphing tools, metrics, reporting, data dictionary… and is customizable and extensible. It also helps you to find compile time and parsing errors.”

– USAF Software Developer

“Understand can take existing code and basically generate any design information or view you would want to see, in addition to performing several useful types of analyses.”

– Jason Bold, Sr. Software Eng.

​“Understand is a tremendous reverse engineering tool... with excellent metrics reporting and evolving standards verification capability.”

– Pratt & Whitney Software Developer

​“Understand™ is good for discovering the structure of the code dependencies and call-paths... it would have taken me hours to generate the same thing on my own, and I would not have had near as much confidence in my own work (assurance that I understood the code correctly).”

– Paul Hyland, Software Engineer, Lockheed Martin

Icon - Elements Webflow Library - BRIX Templates
Icon - Elements Webflow Library - BRIX Templates

Understand is certified in ISO 26262, IEC 61508, and EN 50128

Understand by Scitools is certified for use as a support tool for all projects requiring ISO 26262, IEC 61508, and EN 50128 compliance.  Safety is our top priority at Scitools, our software is heavily tested and vetted before each release providing your team with a safe and secure development environment.

Compatible with Most Languages

See how Understand is used around the world!

We asked our users to send us pictures of their Understand setups, here are some of the submissions. Check out the full blog article

Not ready to buy a license?
Download a free trial and test out all of Understand's features using a sample code base.
Start Now