gdbcoredumpdlopenpostmortem-debugging

How do I debug a core dump that aborted in a dlopen()'ed plugin?


I have a core dump from a user. The main program loads selected plugins via dlopen. The process aborted in the plugin module. The user provided a backtrace that includes the filename of the plugin, and the function it aborted in.

I need to look at data, such as arguments passed to the function. How do I tell gdb where the plugin was loaded, so it can figure out how to show the source and data?


Solution

  • How do I tell gdb where the plugin was loaded, so it can figure out how to show the source and data?

    GDB should do that automatically (the load addresses are contained inside the core).

    All you need to do is supply the binaries that match customer's environment exactly. See also this answer.