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
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.