我可以编写自己的可由 GDB 读取的核心转储吗?

问题描述 投票:0回答:1

是否可以手动写入核心转储? 假设我有一个堆栈、堆、代码和所有处理器寄存器的二进制内存转储。

是否可以创建一个核心文件,让 GDB 看起来就像一个真实的进程崩溃并生成了这个核心文件?

其主要用途是我在汇编代码上运行虚拟机。 我们假设架构是 PPC。 当我遇到问题时,我希望能够编写核心文件 Linux 上的 GDB 可以读取它来帮助调试问题。

我不确定ELF格式核心文件和其他格式有什么区别。 但我想知道是否可以编写一个模块来获取数据段、代码段、堆栈段和寄存器,并为 GDB 生成一个可读的核心文件,如果可以,那有多复杂。

c debugging gdb coredump
1个回答
0
投票

是否可以创建一个核心文件,让 GDB 看起来就像一个真实的进程崩溃并生成了这个核心文件?

确实如此。核心的格式有些复杂,并且与系统相关(并且您没有说明您想要哪个系统的解决方案)。

这个答案给出了可能的ELF解决方案。

如果您使用的是非 ELF 系统,您必须告诉我们是哪一个。

© www.soinside.com 2019 - 2024. All rights reserved.