Pinpoint and replay run-time issues for faster resolution

CodeDynamics looks at your complex C and C++ applications at execution time to help identify and correct bugs, memory issues, and crashes. Developers can spend hours, days, or even weeks trying to identify what happened in large, long-running programs. CodeDynamics cuts right to the chase, quickly identifying the cause of the crash, allowing you to have complete control over breakpoints and stepping commands.

Purpose-built for multithreaded applications at enterprise-scale, CodeDynamics gives you unparalleled visibility into running programs, unmatched control over thread states, and a unique conceptual view to aid analysis.

Get your demo

Privacy Policy

Ready to try the product? Start your evaluation!


How can CodeDynamics help?

Scenario CodeDynamics helps
An application outputs an incorrect value. To determine what went wrong you typically have to restart the whole debugging session to step into the routine. Using our unique ReplayEngine capability, during the same debugging session you can easily step back to the point just before a method call and then follow execution into the method to determine the cause of the error, and exactly where it occurred.
When an application incorrectly writes memory it can overwrite the stack frame and crash the program. This will typically yield an invalid stack trace, giving the developer no clue where the application actually crashed. Step backwards at the point of the crash to see the stack trace and reconstruct and reveal the point of the crash as well as the data that caused it to crash.
Setting breakpoints at the thread level, controlling individual threads, and switching between the threads to understand their states is cumbersome, time-consuming, and does not allow enough granular control. Our user interface gives you a clear view of the running threads in the application, their current state, and where they may be stopped in the code. You can easily switch the analysis context from one thread to another by simply diving in on a new thread.
You can set breakpoints down to the individual thread level for fine-grained control over the execution of a thread. You can also individually control the stepping actions on a per thread basis.
You want to see STL container classes such as vector, list, map, and sets as conceptual representations of the data versus their low-level implementations. Automatically detect STL and Boost containers to transform them into an easily understood conceptual view. For example, with CodeDynamics a linked list will be shown as a simple array of the values rather than the underlying linked node implementation.
Start dynamic analysis on a target executable or a running executable. IDE debuggers such as Eclipse or NetBeans require the overhead of maintaining a project and configuring the debug launch of the target executable. Quickly start dynamic analysis on a new target, or attach to a running executable.