Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VS2008调试器显示不正确的值。如何清理/重置/修复调试器?_C++_Visual Studio 2008_Qt4_Visual Studio Debugging_Memory Corruption - Fatal编程技术网

C++ VS2008调试器显示不正确的值。如何清理/重置/修复调试器?

C++ VS2008调试器显示不正确的值。如何清理/重置/修复调试器?,c++,visual-studio-2008,qt4,visual-studio-debugging,memory-corruption,C++,Visual Studio 2008,Qt4,Visual Studio Debugging,Memory Corruption,我的VS2008调试器显示几乎所有变量的损坏值。我知道这是不正确的,因为我只是打印了那些给我正确值的值 以下是一些虚假的价值观, 但同时在控制台的打印中 所以,我不明白这里出了什么问题。但我认为问题应该出在VisualStudio上。有人知道怎么解决这个问题吗 更新:这是一个Qt应用程序。以下是我尝试过的一些东西: 重建了所有的项目 已删除调试文件夹并重新生成 从git repo那里得到了一份新的副本并重建了 SP1和VS2008 的所有C++相关更新/修补程序 如果该问题没有出现在非Q

我的VS2008调试器显示几乎所有变量的损坏值。我知道这是不正确的,因为我只是打印了那些给我正确值的值

以下是一些虚假的价值观,

但同时在控制台的打印中

所以,我不明白这里出了什么问题。但我认为问题应该出在VisualStudio上。有人知道怎么解决这个问题吗

更新:这是一个Qt应用程序。以下是我尝试过的一些东西:

  • 重建了所有的项目
  • 已删除调试文件夹并重新生成
  • 从git repo那里得到了一份新的副本并重建了
  • <安装> SP1和VS2008 的所有C++相关更新/修补程序
如果该问题没有出现在非Qt应用程序中,则此特定应用程序中的某些设置可能会在启用优化的情况下进行编译

在VisualStudio中,这会让人感到困惑,但没有什么能阻止“调试”生成打开优化,阻止“发布”生成关闭优化(通常,您会看到发布生成关闭优化)

最重要的是,由于没有生成调试符号(项目中的另外两个设置在编译和链接期间打开/关闭符号),可能会有一个无法调试的“调试”生成。换句话说,在“发布”和“调试”构建配置中,“调试开/关”和“优化开/关”的任何组合都是可能的


由于您正在生成符号,所以问题不会是符号没有被生成。因此,请检查您正在构建的所有项目,并查看“优化”设置,而不是将配置命名为“调试”还是“发布”

您是否正在编译版本配置?@idanuda nope。正在调试您是否尝试删除整个调试文件夹?@idanuda是,在您询问后。仍然相同,显示的是伪值。如果它没有出现在其他应用程序中,则此特定应用程序中的某些设置可能会在启用优化的情况下进行编译。没有什么可以阻止项目启用优化,并且仍然是“调试”版本。请检查您正在构建的所有项目,并查看“优化”设置,而不是“调试”或“发布”构建。从msdn开始,编译器优化代码时,会重新定位和重组指令,从而生成更高效的编译代码。由于这种重新排列,调试器无法始终识别与一组指令相对应的源代码。优化会影响:局部变量,可由优化器删除或移动到调试器无法理解的位置。函数中的位置,当优化器合并代码块时会发生更改。调用堆栈上帧的函数名,如果优化器合并两个函数,则可能会出现错误。