Re: Python API: Getting symbol by address

Roman Popov <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAATAM3EhPrrSXi6OcfesE=nNW9gfQmq_wbyXRGU+Syo+sn61WQ@mail.gmail.com>
Thanks, so it is just not implemented yet.
Unfortunately I can't quickly write a patch myself because I'm not familiar
with gdb codebase. I don't even know how debuggers work to be honest .

I've noticed that GDB can pretty-print function/method pointer values like
this:

print ( some_func_ptr_gdbvalue )
>>> (void (*)(int, int)) 0x4049f7 <test(int, int)>

So I've unblocked myself by this ugly text parsing workaround:

s = str (some_func_ptr_gdbvalue)
symbol_name = s[s.find("<") + 1 : s.rfind(">")]
gdb_symbol = gdb.lookup_symbol(symbol_name)


2017-12-21 14:24 GMT-08:00 Simon Marchi <[email protected]>:

> On 2017-12-21 13:20, Roman Popov wrote:
>
>> Hello,
>> I have collection in C++ that stores pointers to functions and methods. I
>> want to pretty-print pointed method and functions names.
>>
>> It is possible using GDB shell, for example:
>>
>> (gdb) info symbol 0x405ece
>>
>> top::test_thread() in section .text of test_procs
>>
>>
>> However I found no way to do the same using Python API.  Why such
>> limitation?
>>
>> P/S Same question on stackoverflow :
>> https://stackoverflow.com/questions/47916564/gdb-python-api-
>> getting-symbol-name-from-address
>>
>> Thanks,
>> Roman
>>
>
> Hi Roman,
>
> As most things in the Python API (and GDB in general), it's likely because
> no one took the time to do it.  I don't see any technical reason not to
> have it.  If you take a shot at writing a patch for this, feel free to ask
> if you are blocked.
>
> Thanks,
>
> 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.