如何在核心转储分析期间映射文件

how to map file during coredump analyse

我必须分析一个核心转储。 我的流程的大部分数据都包含在一个映射文件中。 当我想访问该数据时,gdb 说它无法访问该数据,因为它尚未映射该文件。 您知道如何 gdb 映射该文件以便访问数据吗?

how to make gdb map that file in order to have access to data.

我不相信 GDB 有任何命令可以做到这一点。

你可以做的是将数据文件包装到目标文件中,然后使用add-symbol-file foo.o <suitable-load-address>。您可以使用 objcopy --add-section 来执行此操作。 Example.

在 Linux 上,您还可以配置核心转储以包含只读映射(通常排除此类映射以使 core 更小),这样就不需要任何特殊步骤。请参阅 man 5 core,关于 Controlling which mappings are written to the core dump 的部分。