Allinea DDT has the power that you need to take control of software bugs whenever they occur. It makes solving even the most complex multi-threaded or multi-process software problems straightforward.
Built-in fast memory debugging reveals problems in heap (allocated) memory usage automatically.
- Instantly stops on exceptions and crashes – identify the source and data behind any crash with an easy to use comprehensive interface to application state.
- Catch out-of-bounds data access as soon as it occurs,
- Consign memory leaks to history: leak reports detail the source locations that are responsible for the memory allocation
- Supports custom allocators - so that allocation locations are reported at the level that matters to your application.
- Check for dangling pointers
Navigate source and data effortlessly
The Allinea DDT user interface allows you to navigate code and data easily.
- Browse through variables, objects, modules, stack frames and complex data structures
- Extensible pretty printing of complex data structures – with built in support for C++ STL, C+11 STL additions, Boost, and Qt.
- Syntax-highlighting support for Fortran77, Fortran90, C and C++.
Powerful, scalable, multi-process, multi-threaded debugging
If you work with multiple processes and threads, through libraries like MPI or OpenMP, Allinea DDT makes managing concurrency easy.
Monitor and control threads and processes individually and collectively – with powerful and fast process grouping for control and display.
- Spot unusual data values and changes instantly from one to one million processes with smart highlighting and sparklines. Read more about sparklines in our blog .
- Parallel stack display – the scalable view of all the stacks of every process and thread - narrows down problems for any level of concurrency: from a handful of processes and threads to hundreds of thousands.
- Lightning-fast performance even at extreme scale - Step and display 700,000 processes in 1/10 of a second.
We also make it easier to understand the types of bugs that multi-process codes can introduce.
- Diagnose deadlocks, livelocks and message synchronization errors with both graphical and table-based message queue displays.
- Integrated support for open-source MPI correctness tools.
We've put time into debugging so that you don't have to. Allinea DDT integrates the best practice to help you spot the causes of problems more quickly.
- Catch common errors at source with built-in static analysis for C, C++ and Fortran - which warns about bugs before you've even hit them.
- Why does this revision of my code behave differently to the previous one? Version control integration highlights recent changes - and allows you to see why and where changes have been introduced.
- A single command in Allinea DDT will automatically log the values of variables across all processes at each changed section of code, allowing you to track down exactly how and why a particular change introduced problems to your code.
To help you manage your progress during debugging our logbook provides a handy record of the steps you've taken and the things that have been observed.
- Automatic, always-on logging of your debugging activity so that it’s easy to go back and review the evidence for things you might have missed at the time.
- Share logbooks with others on your team, making collaborative debugging a reality.
- Compare two traces side-by-side, to see changes between systems, versions or process counts jump right out.
Scalable printf and powerful command-line modes
Visualize and debug data simultaneously using Allinea DDT's connector to the VisIt scientific visualization tool.
Part of an integrated development toolsuite
It's natural to want to improve the speed of code after removing the bugs. That's why Allinea DDT is part of Allinea Forge. Allinea DDT is available separately or in an Allinea Forge license the includes the leading parallel and multithreaded code profiler, Allinea MAP.
Allinea MAP shares the same user interface and installation as Allinea DDT - which means it is easy to switch to profile a code once debugging is complete.
Access Remote Systems with native Mac, Windows and Linux clients
Cross-platform for the HPC architectures of today and tomorrow
Allinea DDT is cross-platform supporting all of today's leading technical-computing platforms - which means you can be productive on any system.
It's a CUDA debugger, a parallel debugger, a multithreaded debugger, an OpenMP debugger and a memory debugger all at the same time - and supports mixed hybrid programming models.