调试嵌入式软件(coredump)

时间:2016-11-09 10:23:16

标签: debugging gdb embedded coredump

我目前正在开发一款嵌入式CPU(ARM cortex-M0)。我正在经历崩溃(HardFault),因此,我正在尝试调试它们。

目前我可以获得内存转储(我在printf控制台上以十六进制发送所有内容,我唯一可以访问内存)。

我的想法是将该转储作为coredump加载到gdb,从而能够调试程序。 如何从原始内存转储中创建一个“真正的”coredump文件,以便我可以直接将其提供给gdb?

我还尝试在gdb模拟器中运行我的程序,使用restore命令和我的原始内存,但我不明白如何运行它。你有什么想法吗?

这里的主要问题是:如何基于程序精灵和原始内存内容创建与gdb兼容的coredump文件?

1 个答案:

答案 0 :(得分:1)

有一对库可以执行此操作:CrashCatcherCrashDebug。这首先打印一个转储(你已经在做了但是这会以特定的格式打印),第二个打印到gdb中以允许加载转储。出于某种原因,CrashDebug不会创建核心文件,而是使用gdb' s target remote命令连接到gdb。虽然效果相同。它支持Cortex-M0,M3和M4。

相关问题