Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

oBFusCATed - gdbmi plugin query

<< < (6/6)

I have simple line breakpoints and simple watches now being persistent. By simple I mean non edited, but I save all of the data.
I also fixed a bug that is in the existing GDB debugger where watches are not removed if you close a project. You can see this by open a simple hello world, set a breakpoint, set a watch exit the project and then open the watch window.
Is there any reason why you can add a line break point before starting the debugger, but you need to run the debugger to set a watch?

One major change I have done is to use the tinyxml2 library for the XML file saving and loading, so if you want to build it yourself you will need to build the tinyxml2 library. Attached (in the zip) is my C::B windows main project file with the tinyxml2 library.

Hmmm, I believe there's already a tinyxml lib built when you build CodeBlocks itself. It's used to read/write all the confs.
And even has a simple but usable api in configmanage.h (I seem to remember).

You could use it to save any debugger info in the extension area of the cbp file.

The code that I used from @ollydbg for save/load used it's own file and the discussion way way back was that it was okay and as such I used the code and updated it to tinyxml2 as tinyxml is depreciated by the developer about 10 years ago.

I will hopefully get to a stage next week where I would like to get some other devs to help test the plugin to see if there is any missing functionality with the exception of the following as I do not expect this to be working next week and some I will leave these for another devs to do:

* Remote debugging.
* No function break point support.
* No display the return value of a function after "step out".
* Testing on Linux or MacOS,  unless you build the plugin yourself and mod the build process. I will leave this for after I complete a LLDB debugger, unless another dev does it first.
* No checkpoints (only available on linux ).
* No Skipping functions - see
* No Record replay (only linux).I need to still need complete the following before I unleash it for testing:

* Check the persistent breakpoint and watches work for the different types and if there is anything missing fix it.
* Expand function argument and local variables in the watch window.
* Ability to delete a GDB data watch point (data break point in the C::B GUI)
* Build using the SVN trunk source and modify plugin files to build. My current build project already builds a debugger_gdbmi.cbplugin and the DLL
* Test plugin against last nightly C::B release

Saving the settings in an external file is a good idea, so they can be added to git ignore files in a multi user environment
We should probably establish an internal standard for names or save them in a .codeblocks folder in the project directory or so...

I will let you run with the file directory/name changes etc as I have enough to work on and the code can be changed at any stage as it does not affect the ability to use GDB/MI for debugging.


[0] Message Index

[*] Previous page

Go to full version