Geany debugger walk-through

Geany debugger is a plugin for the Geany IDE to integrate debuggers support.

When starting it's development it was thought of as a general debugging plugin with support of various debuggers.
For now only GDB support is available, but I'll hope I'll be able to start working on others soon.

Plugin adds a page in the notebook in the bottom of IDE, and is controlled through the hoykeys.

On the "Target" page one can select a target file to debug, select debugger type (as mentioned above only GDB is available now), command line arguments and add environment variables.

(entering a new environment variable is started by clicking last row left column, entering name, pressing enter entering value and pressing enter again)

Buttons "Load", "Save" and "Clear" deal with the config file that can be put in the debugging sources directory or anywhere else.
It contains target file name, command line, environment variable, breakpoints and watches lists.
These settings can be saved and then loaded after next Geany start.

"Save" button saves current settings in the folder of a file currently opened in editor (if any).
"Load" button is active only is config file is present in a folder of a currently opened file, pressing it - clears all current settings and loads new from config.
"Clear" button clears all settings.

The name of a config file is ".geanydbg".

New watch on the watches can be dragged from the editor or entered manually.

Controlling debug is done using hotkeys.

After starting debug session several debug pages are created.
They are Locals, Call stack, Debug terminal and Debugger messages.









Values from locals and watch pages are painted red if they were changed.
Double click on the values in locals and watches adds corresponding variable as new watch (can be used to add child items of existing locals/watches to watch list).

Dwelling on a variable when debugging causes calltip appearing, with the evaluated value.

Inserting breakpoints while debugging is supported if it is supported by corresponding debugger.

Currently works on Linux only.