Gdb 如何在coredump分析期间映射文件

Gdb 如何在coredump分析期间映射文件,gdb,memory-mapped-files,coredump,Gdb,Memory Mapped Files,Coredump,我必须分析一个垃圾堆。 我的流程的大多数数据都包含在映射文件中。 当我想访问该数据时,gdb说它无法访问该数据,因为它没有映射该文件。 您知道如何使gdb映射该文件以访问数据吗 如何使gdb映射该文件以访问数据 我不相信GDB有任何命令可以做到这一点 您可以将数据文件包装到一个对象文件中,然后使用添加符号文件foo.o。您可以使用objcopy--addsection来执行此操作 在Linux上,您还可以将核心转储配置为包含只读映射(通常排除此类映射以使core更小),这将使任何特殊步骤变得不必

我必须分析一个垃圾堆。 我的流程的大多数数据都包含在映射文件中。 当我想访问该数据时,
gdb
说它无法访问该数据,因为它没有映射该文件。 您知道如何使
gdb
映射该文件以访问数据吗

如何使gdb映射该文件以访问数据

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

您可以将数据文件包装到一个对象文件中,然后使用
添加符号文件foo.o
。您可以使用
objcopy--addsection
来执行此操作


在Linux上,您还可以将核心转储配置为包含只读映射(通常排除此类映射以使
core
更小),这将使任何特殊步骤变得不必要。请参阅
控制哪些映射写入核心转储的部分

,您可以提供更多详细信息吗?通常,核心文件在*nix操作系统下,将拥有进程的全部内存空间。也许您可以创建一个小示例?您好,在我的示例中,核心文件没有完整的内存空间。映射文件属于进程的虚拟内存。Core文件不包含这些段。我尝试过coredump_过滤器解决方案,效果很好。我希望有人能够在分析时加载映射文件。谢谢lot@JeanChristophe我为您提供了解决方案。我无法尝试第二个解决方案,因为我的文件太大(objcopy失败)。谢谢你的帮助。