Re: seeking open source examples of GDB scripting
Simon Marchi via Gdb <[email protected]> Mon, 26 Jan 2026 11:52:28 -0500
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 1/18/26 2:01 PM, Basile Starynkevitch wrote: > Hello all, > > I am seeking open source examples (or tutorials, given that I am unfamiliar with Python) of GDB scripting. > > Since I have a naughty bug : https://github.com/RefPerSys/RefPerSys/issues/30 > > The scripting could be in GNU guile (I much prefer that language). I'm sure there are good examples of real-world scripting out there, on github or otherwise, but I don't have good examples in mind. The Guile API is unfortunately not as maintained as the Python one, so it's missing features compared to the Python one. And even the Python API is missing some key things, people just add whatever they need. > For example, I would like to automatically add a breakpoint to every line calling the RPS_POSSIBLE_BREAKPOINT() macro > That macro is nearly a no-op one defined in https://github.com/RefPerSys/RefPerSys/blob/19f01d3783c9f727980f21fc2c66db4837745b61/refpersys.hh#L1335 I don't think it's possible for GDB by itself to figure out the "call sites" of a macro. But you could perhaps modify your RPS_POSSIBLE_BREAKPOINT_AT macro to include a call to a dummy/empty function, and put a breakpoint on that. That wouldn't require using the Python or Guile API. Otherwise, I see that your macro defines some symbols of the form: "__" RPS_BASENAME "_brk_" #Lin You could try the rbreak command to try to put a breakpoint on all symbols matching a given regex pattern. But that only works if the symbol is visible to gdb, I'm not sure it will be. You might need to make it ".global", I don't know. Simon