GDB所做的核心转储包含了什么内容?

很明显,GDB可以通过它的包装器生成一个进程的核心转储,但是不清楚它包含了什么,并且很难find一个进程,因为不同的消息来源说完全不同的东西。

正因为如此,我有以下问题:

  1. 它是否包含整个过程的虚拟内存? 如果没有,它是什么部分? 所有可写的区域或堆栈只或(正如其名称所暗示的)一些重要部分或什么?

  2. 是否有可能通过GDB生成一个完整的进程内存的核心文件? 如果是这样,怎么样?

  3. 根据进程的内存映射和通过gcore命令自动生成的文件,通过保存和连接来自所有区域的内存生成的“dump”会有什么区别?

  4. 一个进程将某些数据写入RAM中。 我可以确定数据将被(总是)访问并保存在使用gcore命令生成的核心文件中吗? 如果没有,为什么? 它依赖于什么?