如何在 arm 平台中调试 c 程序中的全局变量损坏

How to debug global variable corruption in c program in arm platform?

本文关键字:程序 全局变量 损坏 调试 arm 平台      更新时间:2023-10-16

在我的代码中的某个地方,整数全局变量正在损坏,它实际上导致 if 条件检查失败。由于分配给变量的垃圾值,条件检查失败。

解决这个问题的最佳方法是什么?

由于我的目标平台是arm,我真的找不到任何选项来调试此问题。我已经使用 -Wl,-Map=transport.map 选项创建了一个内存映射文件,但生成的映射文件仅提供有关变量的非常有限的信息。

有人可以指导我解决这个问题吗?

GDB 调试器在目标主板中不可用,但存在 GDB 服务器。

如果可能的话,有人可以帮助检查它吗?

使用好的老式硬核调试

禁用一半的代码,看看是否仍然发生。

如果这一半有效,请禁用另一半。

创造性地找到好的"一半"

迭代:如果你发现了坏的"一半",你把它分成"四分之一",依此类推。

最后,您将找到导致麻烦的代码行。