This is the mail archive of the archer@sourceware.org mailing list for the Archer 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: Archer in Cygwin help


2009/5/22 Sreejith <sreejithsmadhavan@gmail.com>:
> 2009/5/22 Phil Muldoon <pmuldoon@redhat.com>:
>> Sreejith wrote:
>>>
>>> 2009/5/22 Paul Pluzhnikov <ppluzhnikov@google.com>:
>>> ?(gdb) python import gdb.libstdcxx.v6.printers
>>> (gdb)
>>>
>>
>>
>> Ok looks like the printers are loaded, that's good!
>>
>>
>>> (gdb) python print myList
>>> Traceback (most recent call last):
>>> ?File "<string>", line 1, in <module>
>>> NameError: name 'myList' is not defined
>>>
>>
>> Python does not know anything about myList, it is something that is defined
>> in the inferior (the program you are debugging). So the error message is
>> correct from Python's point of view. At this point you should use:
>>
>> print myList
>>
>> (not: python print myList.) What happens then is the pretty-printing code
>> will ask the Python pretty-printers if they have a printer registered that
>> can print that variable. If so that printer is called, and the output is
>> returned to GDB. GDB then formats the output and prints it to the screen.
>
> In my previous mail, I had mentioned out put of both (python print
> myList and print myList). Here it is for your reference:
>
> (gdb) print myList
> $1 = {<_List_base<int, std::allocator<int> >> = {
> ? _M_impl = {<allocator<std::_List_node<int> >> =
> {<new_allocator<std::_List_node<int> >> = {<No data fields>}, <No data
> fields>}, _M_node = {
> ? ? ? _M_next = 0x682150, _M_prev = 0x6821e0}}}, <No data fields>}
> (gdb)
>
> From your explanation, I understand that there is no printers
> registered matching the type of myList and hence gdb is using it's
> 'own printer'. Is that correct? Please share your thoughts.

The following post describes this a bit in detail.
http://tromey.com/blog/?p=524
I tried executing
gdb.libstdcxx.v6.printers.register_libstdcxx_printers(gdb.get_current_objfile())
after importing libstdcxx.v6.printers as discussed in the post. But
doesn't work as well.

-Sreejith


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