在eclipse CDT中监视函数内部的静态变量

时间:2013-04-04 18:21:00

标签: c debugging eclipse-cdt

在c中,当变量在函数内定义为static时,变量的值始终保持不变。很可能,它存储在bss或数据部分。

但是,在Eclipse CDT调试中,当尝试检查此变量时,在表达式窗格中键入变量名称仅在堆栈帧位于函数中时显示变量,如局部变量。

这是日食中的错误吗?

编辑: 在IAR Embedded工作台中,可以在调试时在函数外部监视函数中的静态变量,因此可以。

2 个答案:

答案 0 :(得分:0)

虽然变量实际上存储在堆中......但变量的范围仍然是函数的本地变量。它的值在该函数之外没有任何意义,它在函数外部时永远不会改变...除非你将指针传递给它,在这种情况下你可以在任何有权访问该指针的函数中查看它。 / p>

所以......不......这不是一个错误。

答案 1 :(得分:0)

您需要使用函数限定静态变量以确定范围,例如如果在foo::myvar函数中定义了myvar,则foo