VS代码执行与代码文件不同

时间:2009-03-12 04:33:56

标签: visual-studio debugging execution

有没有人曾经在Visual Studio中进行调试,它似乎执行不同的代码然后执行的代码?有时它甚至会进入正在逐步执行的文件中的空白区域,但VS仍在执行某些操作?

一旦有人让我在用户目录下的Application Data目录中清除了某些内容,我已经多次发生过这种情况。然而,我不记得那是什么,并想知道是否有人有一些想法。

3 个答案:

答案 0 :(得分:2)

有四种可能的原因。

原因1:你实际上没有开始编译结果而是其他文件。要启动的可执行文件的路径在项目属性的“调试”页面上设置。

原因2:您已进行优化。在这种情况下,编译器只保存代码行 - 对于某些代码而不是其他代码的已编译代码信息。你会看到按下“跳过”后你实际上跳过了几个语句或者你无法访问某些变量值。关闭优化或从交互式调试切换到日志记录。

原因3:程序数据库(存储代码行与编译代码的绑定的.pdb文件)与编译文件不同步。 “重建”项目通常有帮助。

原因4:可执行文件所在文件夹中的程序数据库(参见原因3)已过期,因为VS会将程序数据库放在每个编译的其他位置)。放置.pdb文件的路径在项目的链接器属性中设置。

答案 1 :(得分:1)

如果您的代码正在优化(项目属性,构建,“优化代码”),那么正在运行的代码将不一定与IDE中的代码匹配。这通常是由尝试调试发布版本引起的。但是,在某些情况下情况并非如此。

答案 2 :(得分:1)

您是否将调试器附加到正在运行的程序中?如果是这样,您可能已对源文件进行了更改,但忘记编译代码。我偶尔会这样做,虽然很容易发现。