我有一个运行 FreeRTOS 的 ARM Cortex-M4 嵌入式系统。我已经实现了一个崩溃日志转储机制,该机制在发生 fatal error (例如被零除、空指针、地址错误、无效指令或断言)时将文件写入存储设备。在这个文件中,除其他外,我写了异常发生时堆栈的内容。
该系统捕获现场发生的崩溃,因此我的想法是分析返回给我的崩溃并尽我所能确定问题的根源。我可以轻松地将日志连接到编译该版本代码时生成的 .elf。我只需要一种解析它的方法。
我假设已经有可以做到这一点的工具(我不是第一个这样做的人),但我很难在 The Series of Tubes(tm) 上找到符合要求的东西。
是否有一个很好的起点来创建一个可以从编译中解析 .elf 并跟踪堆栈转储以创建此类报告的工具?
最佳答案
为了其他遇到此问题的人的利益,这就是我正在做的事情:
Google 有一个名为“breakpad”的工具,可以解析“minidump”格式的 .elf 和 crashlog 文件,该工具最初由 Microsoft 创建并由 Google 为 Chrome 改编。
我正在编写一个工具将我的堆栈跟踪转换为小型转储格式,希望使用 breakpad 工具来分析我的崩溃日志。
这是 breakpad 的链接:https://github.com/google/breakpad/blob/master/docs/getting_started_with_breakpad.md
关于c++ - 从堆栈转储和 .elf 文件中提取 FreeRTOS/ARM/C++ 堆栈跟踪的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665991/