Lis*_*tek 6 process debugging memory core-dump gdb
很明显,GDB 可以生成进程的核心转储,例如通过它的包装器 - gcore,但是不清楚它究竟包含什么,而且很难找到答案,因为不同的来源说完全不同的东西。
因此,我有以下问题:
它是否包含进程的整个虚拟内存?如果不是,那是哪一部分?所有可写区域或仅堆栈或仅(顾名思义)某些重要部分或什么?
是否可以通过 GDB 生成具有完整进程内存的核心文件?如果是这样,如何?
通过根据进程的内存映射保存和连接所有区域的内存生成的“转储”与使用gcore命令自动生成的文件有什么区别?
一个进程将一些数据写入 RAM 的某处。我可以确定数据将(始终)访问并保存在使用gcore命令生成的核心文件中吗?如果不是,为什么?它取决于什么?
核心文件包含进程虚拟内存中特定于该进程的所有部分,通常是数据和堆栈段。它不包括包含可执行代码的文本段——当你想调试一个核心文件时,你必须告诉调试器正在运行什么程序。
您可以在Anatomy of an ELF core file 中找到对内容的详细说明