I've got a core dump that came from another machine, but I don't have all the shared libraries that were loaded in the crashed process. I am not able to log on to the machine or reproduce the install state. I'm definitely not able to reproduce the bug locally.
The crash that triggered this core dump is in a shared library that I don't currently have locally, but I don't know which one.
bt
doesn't give me any hints as to which shared library is associated with the address. Here's a snippet of that output:
(gdb) bt
#0 0x00007f4356396c21 in ?? ()
#1 0x00007f4356365009 in ?? ()
One may think that info shared
would do the trick, but that only appears to show address ranges for shared libraries that gcc is able to find locally.
(gdb) info shared
From To Syms Read Shared Object Library
0x00007f43ac42a0c0 0x00007f43ac4b3766 Yes (*) /usr/lib/x86_64-linux-gnu/libX11.so.6
No /usr/lib/x86_64-linux-gnu/libGL.so.1
Maybe my crash is in libGL.so.1, but how would I know, since I don't have an address range to work with? Maybe it's in one of the other 50 shared libraries in the process. Is there a reasonable way for me to discover where my crashing addresses come from, presumably by listing all the shared library address ranges? If I know which library this comes from, I might be able to get the original file, or dig around in a .map file to reproduce my call stacks by hand.