Re: Duel reloaded: Duel.py (and a PrettyPrinter decorator)
Simon Marchi <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 2017-06-19 11:03, Sergei Golubchik wrote: > Hi, > > If you've never heard about Duel - it's an insanely cool data > exploration language for gdb. Specifically designed to print out > complex > data structures in one command. Created as a public domain patch for > gdb > in 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