如何在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",依此类推。
最后你会找到导致问题的代码行。
在我的代码中某处,一个整型全局变量被损坏,它实际上导致 if 条件失败 check.The 由于分配给变量的垃圾值,条件检查失败。
解决此问题的最佳方法是什么?
由于我的目标平台是 arm,我真的找不到任何选项来调试这个 issue.I 已经使用 -Wl,-Map=transport.map 选项创建了一个内存映射文件,但是映射文件genereated 仅提供有关变量的非常有限的信息。
有人可以指导我解决这个问题吗?
GDB 调试器在目标板中不可用,但存在 GDB 服务器。
如果可能的话,有人可以用 deadbeef 指令帮助检查吗?
使用好旧硬核调试:
禁用你的一半代码,看看它是否仍然发生。
如果这一半有效,请禁用另一半。
寻找好的东西要有创意"halves"
迭代:如果你发现了不好的 "half",你将其分成 "quarters",依此类推。
最后你会找到导致问题的代码行。