GPS is also a graphical front-end for text-based debuggers such as GDB. A knowledge of the basics of the underlying debugger used by GPS will help understanding how GPS works and what kind of functionalities it provides.
Please refer to the debugger-specific documentation - e.g. the GNAT User's Guide (chapter Running and Debugging Ada Programs) or the GDB documentation for more details.
Debugging is tightly integrated with the other components of GPS. For example, it is possible to edit files and navigate through your sources while debugging.
To start a debug session, go to the menu Debug->Initialize
, and choose
either the name of your executable, if you have specified the name of
your main program(s) in the project properties, or start an empty debug
session using the <no main file>
item. It is then possible to load
any file to debug, by using the menu Debug->Debug->Load File...
Note that you first need to build your executable with debug information
(-g
switch), either explicitly as part of your project properties,
or via the Debug
build mode (see The Build Mode for more details).
Note that you can create multiple debuggers by using the Initialize
menu several times: this will create a new debugger each time.
All the debugger-related actions (e.g. stepping, running) are performed on
the current debugger, which is represented by the current debugger console.
To switch between debuggers, simply select its corresponding console.
After the debugger has been initialized, you have access to two new windows:
the data window (in the top of the working area), and the debugger console
(in a new page, after the Messages and Shell windows).
All the menus under Debugger
are now also accessible, and you also have access to additional contextual
menus, in particular in the source editor where it is possible to easily
display variables, set breakpoints, and get automatic display
(via tool tips) of object values.
When you want to quit the debugger without quitting GPS, go to the menu
Debug->Terminate Current
, that will terminate your current debug
session, or the menu Debug->Terminate
that will terminate all your
debug sessions at once.