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]

Re: Problem redefining python pretty printers


On Sat, May 21, 2011 at 6:41 PM, Robert Lupton the Good
<rhl@astro.princeton.edu> wrote:
> Using the 7.2.90.20110521-cvs (i.e. 7.3-branch) version, the docs say:
>> Help on function register_pretty_printer in module gdb.printing:
>>
>> register_pretty_printer(obj, printer)
>> ? ? Register pretty-printer PRINTER with OBJ.
>>
>> ? ? The printer is added to the front of the search list, thus one can override
>> ? ? an existing printer if one needs to.
>
> which makes sense if one's working on a new printer. ?Unfortunately:
>
>> (gdb) python import sourcePrinter; sourcePrinter.register(); sourcePrinter.register()
>> Traceback (most recent call last):
>> ? File "<string>", line 1, in <module>
>> ? File "/home/rhl/Bugs/gdb-pp/sourcePrinter.py", line 35, in register
>> ? ? gdb.printing.register_pretty_printer(gdb, printer)
>> ? File "/home/astro/hsc/products/Linux64/external/gdb/7.3-1/share/gdb/python/gdb/printing.py", line 131, in register_pretty_printer
>> ? ? printer.name)
>> RuntimeError: pretty-printer already registered: afw
>> Error while executing Python code.
>
> The routine register is:
>> def register():
>> ? ? printer = gdb.printing.RegexpCollectionPrettyPrinter("afw")
>> ? ? gdb.printing.register_pretty_printer(gdb, printer)
>
> Any advice on what I'm doing wrong? ?I suppose I could come up with a new name each time, but that seems a little clumsy.

You're not doing anything wrong, per se.
I think we need to handle this use-case though.
gdb could either provide a way to replace an existing pretty-printer
or delete it so that it can be re-added.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]