2

我有使用 MS-Visual C++ 2010(免费版)调试的 C 代码。在代码中,一些变量在由括号定义的局部范围代码块内声明和使用
{... }

但是在调试时,调试器不会在监视窗口中显示值,对于在此代码块内声明的所有变量,即使代码执行点在代码块内也是如此。它说“错误:找不到符号”。在调试此代码时,这对我来说是一个很大的障碍。

当我将一个特定此类变量的声明移动到函数的开头时,通过从{}代码块中删除,调试器能够正确地向我显示它的值。

  1. 这种古怪行为的原因是什么?是免费版本造成的吗?

  2. 在不进行代码更改、使用某些项目设置等的情况下,如何在调试器监视窗口中查看此类本地代码块范围变量的值?

4

1 回答 1

2

在这里回复是因为我没有看到这个问题在任何地方得到解决。

转到您的项目属性页面并查看 C/C++ 部分中的优化属性。如果启用优化,您的一些变量将被优化掉。当这种情况发生时 - 这很常见 - 没有要检查的变量,因此您会收到错误消息“未找到符号”,并且它不会显示在您的本地或自动窗口中。将优化属性更改为已禁用,重新构建并查看问题是否已解决。它可能会。

如果优化对您的项目很重要,我会在关闭它的情况下进行开发,但将其设置回您想要定期测试的内容。有时打开优化会破坏某些东西,如果发生这种情况,您想了解您最近所做的更改,因为否则很难找到问题。

于 2011-09-20T18:21:03.713 回答