This is the mail archive of the
mailing list for the GDB project.
Re: Python API: Getting symbol by address
- From: Roman Popov <ripopov at gmail dot com>
- To: Simon Marchi <simon dot marchi at polymtl dot ca>
- Cc: gdb at sourceware dot org
- Date: Thu, 21 Dec 2017 14:56:52 -0800
- Subject: Re: Python API: Getting symbol by address
- Authentication-results: sourceware.org; auth=none
- References: <CAATAM3Ep+Wr-UhM6OKTSmhxwVM3r7vWfHpfSRW=ruc=GsuZ5ng@mail.gmail.com> <firstname.lastname@example.org>
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
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@example.com>:
> On 2017-12-21 13:20, Roman Popov wrote:
>> 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
>> P/S Same question on stackoverflow :
> 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.