Adding a missing NT_FILES note to a core file so gdb can load solibs for it

Jan Kratochvil jan.kratochvil@redhat.com
Mon Jan 25 14:22:00 GMT 2016


On Mon, 25 Jan 2016 15:06:05 +0100, Bogdan Harjoc wrote:
> So I'd like to ask whether this has any chance of working.

No.  GDB does not support NT_FILE reading.  GDB follows DT_DEBUG:
	readelf -d execbinary|grep -w DEBUG

Besides that it would not be completely correct, depending on the point of
view.  mmap()ped shared library will be present in NT_FILE but GDB will not
shows it as it was not dlopen()ed (either by a call or via DT_NEEDED).

When GDB cannot read shared libraries it usually means your executable does
not exactly match the one that was core dumped.  To make them matching one
should match build-id from the core file with that of the executable:
	eu-unstrip -n --core=corefile
	readelf -n execbinary|grep -A1 NT_GNU_BUILD_ID
IIRC ld-linux.so also needs to match, I cannot remember why now.


Jan



More information about the Gdb mailing list