#7 0x00007f034f8c1834 in KeyCache::remove () -Now comes the black-magic portion. Run "maint info sections" again and look at the first column. Find the entry that contains the above instruction pointer. It should be marked "ALLOC READONLY CODE". Now, add that address to the offset of the .text segment from the .so file you found above. Finally, you can add the symbols from the shared library with +Now comes the black-magic portion. Run "maint info sections" again and look at the first column. Find the entry that contains the above instruction pointer, The Price Is Right-style. That is, find the largest value without going over your instruction pointer. It should be marked "ALLOC READONLY CODE". + +In the following snippet, if your instruction pointer is 0x00002af760aa32a5, then the address you want is 0x2af76081e000: + + + 0x3fd0424000->0x3fd0424000 at 0x006ce000: load81 ALLOC READONLY + 0x3fd0623000->0x3fd0625000 at 0x006ce000: load82 ALLOC LOAD HAS_CONTENTS + 0x2af76080e000->0x2af760810000 at 0x006d0000: load83 ALLOC LOAD HAS_CONTENTS + 0x2af76081e000->0x2af76081e000 at 0x006d2000: load84 ALLOC READONLY CODE + 0x2af760b76000->0x2af760b76000 at 0x006d2000: load85 ALLOC READONLY + 0x2af760d75000->0x2af760d88000 at 0x006d2000: load86 ALLOC LOAD HAS_CONTENTS + 0x2af760d88000->0x2af760d8e000 at 0x006e5000: load87 ALLOC LOAD HAS_CONTENTS + 0x2af760d8e000->0x2af760d8e000 at 0x006eb000: load88 ALLOC READONLY CODE + + +Now, add that address to the offset of the .text segment from the .so file you found above. You can do this right in gdb: + + (gdb) print /x 0x000d58a0 + 0x2af76081e000 + $1 = 0x2af7608f38a0 + (gdb) + + +Finally, you can add the symbols from the shared library with add-symbol-file unstripped.so 0xMagicAddress You'll have to do this for each shared library (libcondor_util, libclassad, etc.) if you need the symbols for that particular stack frame. +Note that the HTCondor binaries are linked separately for the tarball and native packages (rpm and deb), with slightly different settings. For example, the RUNPATH is set differently. Thus, the binaries from the unstripped tarball may not work properly with a core file generated from an RPM installation. + {section: Windows specific issues}