This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 2017-06-19 11:03, Sergei Golubchik wrote:
Hi, If you've never heard about Duel - it's an insanely cool dataexploration language for gdb. Specifically designed to print out complex data structures in one command. Created as a public domain patch for gdbin 1993, but never got accepted for licensing reasons. Still, Duel is super-convenient, for example, to print the whole linked list one writes just (gdb) dl head-->next->val and to print field 'name' of every element in an array of structures, one writes (gdb) dl arr[..100].name
That's indeed very nice, I didn't know about it. The alternative of these lines using only built-in gdb features would be to write a small while loop, I guess. So I can see how this can be convenient.
I've recently rewritten it in Python, so it doesn't need to be compiled with gdb anymore, one can load it run-time (e.g. from .gdbinit). Here it is: https://github.com/vuvova/gdb-tools This repository also includes a helper to simplify writing pretty printers. It removes all the boilerplate code that gdb requires, you only need to write the value-to-string function itself.
I really like using an annotation for declaring a pretty printer. I wonder if we could (legally-wise and technically-wise) steal that idea :).
Simon
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |