在我的代码中的某个地方,整数全局变量正在损坏,它实际上导致 if 条件检查失败。由于分配给变量的垃圾值,条件检查失败。
解决这个问题的最佳方法是什么?
由于我的目标平台是arm,我真的找不到任何选项来调试此问题。我已经使用 -Wl,-Map=transport.map 选项创建了一个内存映射文件,但生成的映射文件仅提供有关变量的非常有限的信息。
有人可以指导我解决这个问题吗?
GDB 调试器在目标主板中不可用,但存在 GDB 服务器。
如果可能的话,有人可以帮助检查它吗?
使用好的老式硬核调试:
禁用一半的代码,看看它是否仍然发生。
如果这一半有效,请禁用另一半。
创造性地找到好的"一半"
迭代:如果你发现了坏的"一半",你把它分成"四分之一",依此类推。
最后,您将找到导致麻烦的代码行。