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

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

在我的代码中某处,一个整型全局变量被损坏,它实际上导致 if 条件失败 check.The 由于分配给变量的垃圾值,条件检查失败。

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

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

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

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

如果可能的话,有人可以用 deadbeef 指令帮助检查吗?

使用好旧硬核调试:

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

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

寻找好的东西要有创意"halves"

迭代:如果你发现了不好的 "half",你将其分成 "quarters",依此类推。

最后你会找到导致问题的代码行。