Data walker extension

Matthew Malcomson <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
Hi there,


I've written an extension for gdb in python so you can walk over data 
structures (similar to mdb ::walk).

The principle of the thing is

pipe <for each element in a data structure> | if <element is 
interesting> | show <do some gdb command>

and variations thereon.


As an example, printing at all elements that have value 100 in a 
hypothetical list starting at `mylist_head` and is NULL terminated

pipe follow-until mylist_head; {} == 0; ((mylist_T *){})->next | if 
((mylist_T *){})->value == 100 | show print *(mylist_T *){}


I was hoping people could try it out and give me some feedback. It's a 
bit raw at the moment (most error messages come with a stack trace and 
suchlike) but I'm finding it pretty useful already.


More complicated walkers can be written for specific applications, I've 
written some for neovim data structures in the bundled_walkers/ directory.

If people want to add or request specific walkers I'd like to hear that too.


The repo is here https://github.com/hardenedapple/gdb-walkers/


Thank you,

Matthew Malcomson
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.