It is possible to debug a multitasking application with GNATbench and the CDT graphical user interface. The version of gdb that comes with the GNAT compiler is Ada-aware and is therefore strongly suggested.
To debug individual tasks set breakpoints in those tasks using the source view.
After hitting a breakpoint and halting you should see something similar to the figure below. When a breakpoint is hit by any thread, all threads will be suspended, and resuming will cause every thread to resume.

Instead of seeing one task and one stack in the Debug view, we now have a number of them displayed in a tree. You can navigate from thread to thread and up and down the threads' individual stacks. This allows you to view local variables or evaluate expressions in the context of the thread and stack frame of your choosing. In the figure above we have hit a breakpoint and then clicked on stack frame number two of thread 2, so the corresponding source for that task at that line is displayed.
In addition to the interface provided by Eclipse, experienced GDB users may find it useful to interact with the debugger directly via the debugger console at the bottom of the screen. First select the "Consoles" drop down menu from the monitor icon of the Console tab and select the console for gdb. You can also click on the thread for gdb shown in the Debug view. Next examine Ada specific status information about the tasks running in an application via the "info tasks" command as in the figure below.
