如何在 arm 平台中调试 c 程序中的全局变量损坏
How to debug global variable corruption in c program in arm platform?
在我的代码中的某个地方,整数全局变量正在损坏,它实际上导致 if 条件检查失败。由于分配给变量的垃圾值,条件检查失败。
解决这个问题的最佳方法是什么?
由于我的目标平台是arm,我真的找不到任何选项来调试此问题。我已经使用 -Wl,-Map=transport.map 选项创建了一个内存映射文件,但生成的映射文件仅提供有关变量的非常有限的信息。
有人可以指导我解决这个问题吗?
GDB 调试器在目标主板中不可用,但存在 GDB 服务器。
如果可能的话,有人可以帮助检查它吗?
使用好的老式硬核调试:
禁用一半的代码,看看它是否仍然发生。
如果这一半有效,请禁用另一半。
创造性地找到好的"一半"
迭代:如果你发现了坏的"一半",你把它分成"四分之一",依此类推。
最后,您将找到导致麻烦的代码行。
相关文章:
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 修改程序的入口点时未调用全局变量的构造函数
- C ++程序如何返回我的数组或写入全局变量
- C vs 2017设置全局变量 - 程序仅在调试中使用断点
- 参数和全局变量,菜单程序
- 为什么C 全局变量不影响程序的内存使用情况
- 具有递归函数且不带全局变量的程序 - C++
- 我不知道如何让我的程序使用局部变量而不是全局变量
- 初学者程序员 c++(局部与全局变量声明)
- 如何在 arm 平台中调试 c 程序中的全局变量损坏
- 从定义变量的位置以外的程序中检索 C 全局变量
- 我可以在 MFC 应用程序中定义全局变量的位置
- 在应用程序中使用全局变量C++
- 如果全局变量的声明引发异常,如何退出C++程序
- C++ 使用共享库中程序中的全局变量
- 使用全局变量编写程序是否更安全
- const强制转换为全局变量,程序崩溃(c++)
- 它的全局变量的地址对于程序的不同运行是相同的
- 一个有两个线程的程序,一个线程增加全局变量,另一个线程减少相同的变量,变量是否总是正确的
- 无法从 Visual C++ 窗体应用程序中的窗体访问全局变量