Pinpoint and replay run-time issues for faster resolution
Examines complex C and C++ applications at execution time to help identify bugs, memory issues, and crashes with CodeDynamics. Developers spend hours, days, or even weeks understanding what happens in large, long-running programs. CodeDynamics quickly identifies the cause of the crash, allowing complete control over breakpoints and stepping.
Built for multithreaded applications, CodeDynamics gives unparalleled visibility into running programs, unmatched control over thread states, and great views to aid analysis.
Rogue Wave senior director of product development, Bill Burns, highlights the dynamic analysis and debugging features of CodeDynamics.
Hear an introduction to CodeDynamics. Learn about the main features of CodeDynamics, and see a brief walk-through of the modern, and easy-to-use interface.
How can CodeDynamics help?
|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.|