Comprehensive Ada Toolsuite

Visual Debugger

One of the components of GNAT Pro’s GPS integrated environment is an extensible debugging harness, offering powerful data display/visualization/tracking capabilities, an intuitive menu-driven interface, and a pluggable look-and-feel. It supports multiple debugger back-ends (both native and cross), handles multiple languages including Ada, C and C++, and allows debugging of multi-threaded and/or multi-processed applications. It is non-intrusive: compiling with debugging enabled has no effect on the generated object code.

Major Features

  • Ability to debug at source and machine levels
  • Multi-language support: Ada, C and C++
  • Support for all Ada constructs, including tasks, generics, tagged types and interfaces
  • Ability to attach debugger dynamically to a running process
  • Ability to display call stack with subprogram parameters, line, and language information
  • Integration with source editor (syntax highlighting, browsing)
  • Handling of user input via GUI, command window, and command-line interface
  • Powerful scripting facility
  • Remote interface for debugging an embedded target
  • Common interface on all platforms
  • Comprehensive help facility

Graphical Interface

  • Intuitive display
  • Graphical depiction of linked data structures
  • Highlighted source code
  • Context sensitive menus
  • Easy browsing of files and symbols
  • Easy examination of variable value via “tooltip” style
  • Special colors to identify pointer links, changed values
  • Interactive navigation of call stack

Available Displays and Data

  • Source, assembler, and machine code integrated for ease of reference
  • Call stack with subprogram, line, and language
  • Task information
  • Evaluation of general expressions at breakpoints
  • Convenient retrieval of previously evaluated expression

Support for Ada Tasking

  • List task information such as status, priority, and parent
  • Switch between tasks
  • Set task-specific breakpoints

Breakpoint and Watchpoint Support

  • Set breakpoint at any line, including within generic instantiations
  • Set watchpoint to stop program when value of specified expression changes
  • Set conditional breakpoint to stop execution only when specified condition is true
  • Run user-specified script of commands at breakpoint
  • Single step over source line, over or into subprogram call, or over an assembly language instruction
  • Change value of any variable, evaluate any expression, or invoke any subprogram while the program is stopped at a breakpoint
  • Resume execution at a different point than where stopped
  • Halt execution when any exception, or a specific exception, or an unhandled exception is raised

Assembly Language Debugging Support

  • Display/modify registers and memory locations
  • Display assembly and machine code, interleaved with Ada source
  • Single step and breakpoint on specified assembly instructions

Knowledge Center