是否可以手动写入核心转储? 假设我有一个堆栈、堆、代码和所有处理器寄存器的二进制内存转储。
是否可以创建一个核心文件,让 GDB 看起来就像一个真实的进程崩溃并生成了这个核心文件?
其主要用途是我在汇编代码上运行虚拟机。 我们假设架构是 PPC。 当我遇到问题时,我希望能够编写核心文件 Linux 上的 GDB 可以读取它来帮助调试问题。
我不确定ELF格式核心文件和其他格式有什么区别。 但我想知道是否可以编写一个模块来获取数据段、代码段、堆栈段和寄存器,并为 GDB 生成一个可读的核心文件,如果可以,那有多复杂。
是否可以创建一个核心文件,让 GDB 看起来就像一个真实的进程崩溃并生成了这个核心文件?
确实如此。核心的格式有些复杂,并且与系统相关(并且您没有说明您想要哪个系统的解决方案)。
这个答案给出了可能的ELF解决方案。
如果您使用的是非 ELF 系统,您必须告诉我们是哪一个。