如何在不使用的情况下检测变量

时间:2016-06-27 14:04:26

标签: c++ debugging memory embedded-linux

我有一个大项目,我意识到有一个变量在没有直接写入任何值的情况下被更改。我的意思是,我认为有一个指针改变了这个值...我想知道是否有任何软件可以检测到这种类型的错误。

我正在使用Valgrind,但它没有提供足够的信息来修复它。

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:0)

在嵌入式系统中,当变量发生变化时,有几种方法需要通知:

  1. 民意调查 - 有一些背景代码监视变量和 当变量执行时,执行相关的函数(通过指针) 变化。
  2. RTOS机制 - 将变量与信号量,互斥量或 消息队列。
  3. 中断 - 也许你的变量是某些中断寄存器 硬件设备或硬件时会中断 寄存器被修改。
  4. 对于轮询,您最好的解决方案是指定一个指向内存地址的指针,并将指针设置为指向volatile项。您可能希望使用 sleep 函数调用,以免占用所有处理器时间。

答案 1 :(得分:-1)

可以在调试模式下使用Visual C ++ IDE来检查变量的值。变量中的任何更改都将在调试模式下动态更新。