This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: How does one get static procedure names?
On Tue, Oct 27, 2009 at 12:27 PM, Daniel Jacobowitz <drow@false.org> wrote:
> On Tue, Oct 27, 2009 at 11:56:46AM -0700, Bruce Korb wrote:
>> Sorry. ? When you do a "bt" using gdb, you see the function
>> names, whether they be "static" or have global (external)
>> linkage. ?The function backtrace_symbols(), on the other
>> hand, doe *not* print static scope function names. ?Even if
>> it takes some work, I'd like to "fix" the constraint. ?However,
>> I wasn't able to decipher the gdb source well enough to figure
>> out how it accomplished this feat. ?So, is there some place
>> in the GDB source where I ought to be looking?
>
> You can't readily do so. ?backtrace_symbols is using the dynamic
> symbol table, which is loaded into memory. ?Local symbols are not
> added to the dynamic symbol table.
>
> GDB reads both the local symbol table and the DWARF/stabs debug
> information.
>
> You'd need an additional symbol table reader which read them off disk
> instead of out of RAM.
Exactly. I know it'd be some work. I think I need to
call: dlopen(NULL, RTLD_NOW)
and then copy & fiddle code out of GDB. yes? :)
Or, do I have to figure out the actual file name and replace
NULL with that file name? Either way....now what?
Just point me to some code & I ought to be okay.