TimeMachine Debugging Suite
What if you could reverse time? The TimeMachine debugging suite offers a range of innovative trace analysis tools that let you debug both forward and backward in time, making it easier to solve the hardest bugs. With TimeMachine, embedded developers can find and fix bugs faster, optimize with ease, and test with confidence.
Better code in less time
The TimeMachine debugging suite extends the range of Green Hills Software’s popular MULTI integrated development environment (IDE) by providing a window into the complex interactions in software that can result in bugs, performance problems, and testing nightmares. By presenting this information in easy-to-understand displays, TimeMachine enables developers to quickly navigate through trace data and produce better code in less time.
With time machine you can:
- debug both forward and backward in time, making it easier to find even the hardest time
- make your software run faster than you thought possible by examining program execution history to find previously unknown bottlenecks
- Accelerate debugging by stepping backward a single step at a time into functions you've already stepped over
- leverage gigabytes of execution history to verify that your program has been fully tested l
Fix bugs faster
The TimeMachine debugger interface lets you step and run through code—both forward and backward in time.
At the heart of the TimeMachine suite, the TimeMachine debugger combines
a familiar debugger interface with innovative functions that enable developers
to step and run forward and backward through their code. In addition,
all standard debugging tools are available, such as execution and data
breakpoints. Using these capabilities, developers can more easily track
down the root cause of bugs—even if they occurred long before the
problem manifested itself. With TimeMachine, developers can more readily
explore processor execution and, as a result, find and fix bugs faster.
Besides the TimeMachine debugger, the TimeMachine suite offers tools that make debugging applications faster and more efficient, including:
- PathAnalyzer: By providing a view of an application’s call stack over time, the PathAnalyzer helps identify bugs and inefficiencies in code. With the PathAnalyzer, developers can quickly determine where the code diverts from the expected path as well as track down anomalous bugs caused by events such as unexpected interrupts or other random glitches.
- EventAnalyzer: The TimeMachine suite is integrated with the
MULTI EventAnalyzer, which displays a view of operating system events
over time. This display helps track down bad interactions such as deadlocks
between various tasks that cause undesirable behavior in your system.
TimeMachine supports both Green Hills Software operating systems: the
and the RTOS.
Optimize and Test
By providing a graphical display of all operating system events, the MULTI EventAnalyzer tool is helpful both during debugging and optimization.
To get the maximum performance from your device software applications, the TimeMachine suite enables you to:
- Easily measure important system metrics such as interrupt latency, context switch time, and boot time with great accuracy and precision
- Perform detailed performance analysis over long periods of time
- Quickly debug a performance problem once it’s located
Along with the PathAnalyzer and EventAnalyzer, the TimeMachine suite integrates the patented MULTI Profiler to offer the following capabilities to help you more easily identify performance problems in embedded code:
- PathAnalyzer: By making it obvious which functions take the most time, the PathAnalyzer is the ideal tool for pinpointing performance bottlenecks. With its intuitive interface, the PathAnalyzer can offer a unique level of detail to make performance optimization easier and more productive.
- EventAnalyzer: The EventAnalyzer provides a graphical display of operating system events such as kernel service calls, interrupts, exceptions, and context switches. With this information, it’s quickly apparent what operations take the most time and where optimization efforts should be focused.
- Profiler: The integration of the TimeMachine suite with the MULTI Profiler helps to quickly determine how much time an application spends in various places. The MULTI Profiler can create reports with valuable and revealing information about blocks, source lines, and functions to make it easier to find and fix performance problems.
By displaying the length and frequency of INTEGRITY RTOS events, the EventAnalyzer helps you tackle high-level performance problems.
During testing, The TimeMachine suite’s powerful code coverage tools allow you to easily determine which particular instructions in the application were executed. This information makes it easy to analyze the quality of your test suite and identify segments of code that have not been thoroughly tested.
The MULTI Profiler provides code coverage reports that show which blocks and source lines have not been executed.
The trace data analyzed by the TimeMachine Suite can be collected two ways:
- Using a microprocessor that provides a built-in realtime trace port (click here for supported processors)
- Using an instruction set simulator
Real-time hardware trace
Microprocessors with built-in, real-time trace ports let you tap in to the full capabilities of TimeMachine and collect trace data on shipping hardware that is running production software without any intrusion, instrumentation, or modification to system behavior. Since the system behaves identically while collecting trace data, the TimeMachine suite can help you track down all bugs as well as measure performance metrics very accurately.
Using the SuperTrace Probe, you can:
- Capture up to 4 GB of trace data, enabling analysis of hundreds of millions of instructions
- Collect trace data at core clock rates up to 1.2 GHz and trace port speeds over 300 MHz
Green Hills Software simulators
Green Hills Software’s instruction set simulators include full TimeMachine support so that software debugging and analysis can be performed without connecting to target hardware.
With a simulator, software development can begin before target hardware is available. Besides getting a jump on initial code writing, simulators are helpful throughout the development cycle, enabling debugging and testing to continue even when target hardware is in short supply or when there are known hardware bugs that may not have software work-arounds.