我目前正在处理一个嵌入式CPU(ARM cortex-M0)的板子。我遇到了崩溃(HardFault),因此我试图对其进行调试。
目前,我可以获取内存的转储(我将所有内容以十六进制发送到printf控制台,这是我唯一能够访问内存的方式)。
我的想法是将该转储加载为coredump到gdb中,从而能够调试程序。如何从原始内存转储中创建与gdb兼容的“真实”coredump文件,以便我可以直接提供给gdb?
我还尝试在gdb模拟器中运行我的程序,使用我的原始内存和“restore”命令,但我不知道如何运行它。你有什么想法吗?
主要问题在于:如何基于程序elf和原始内存内容创建与gdb兼容的coredump文件?
目前,我可以获取内存的转储(我将所有内容以十六进制发送到printf控制台,这是我唯一能够访问内存的方式)。
我的想法是将该转储加载为coredump到gdb中,从而能够调试程序。如何从原始内存转储中创建与gdb兼容的“真实”coredump文件,以便我可以直接提供给gdb?
我还尝试在gdb模拟器中运行我的程序,使用我的原始内存和“restore”命令,但我不知道如何运行它。你有什么想法吗?
主要问题在于:如何基于程序elf和原始内存内容创建与gdb兼容的coredump文件?
printf
仍能工作很难 - 特别是如果它是带缓冲区且中断驱动的。在这种情况下,硬件调试器将更加有效。 - Clifford