2010-06-29 133 views
9

偶尔在调试过程中调试器会随机跳转。有时候我会在另一个函数里面加入一个函数,而不是在下一行跳转到一个看起来随机的地方。有时到达另一个功能的中途。它总是似乎尊重断点,即如果断点在将来设置,它永远不会跳过它。Visual Studio 2010调试器跳过

我正在运行64位Win 7和Visual Studio 2010最终版。我没有使用线程。这在我的visual studio 2008中从来没有发生过。我该如何解决这个问题?

+0

什么语言(本机C++或基于.NET的语言)?你确定你正在进入的函数没有用优化进行编译(这肯定会让调试器感到困惑)。 – 2010-06-29 21:33:30

+0

我正在使用vb.net。解决方案配置设置为'调试'平台'任何CPU' – Michael 2010-06-29 21:52:26

+0

使用线程?重要的是要提到的。 – 2010-06-29 21:58:15

回答

4

我运行到XP的机器上调试C#程序使用Visual Studio 2010类似的问题。调试器只是随机跳到其他行或下一个中断点。

看来,微软已经发布了这样的修复在SP1。

+2

我刚刚检查了上面的Microsoft链接以获取更新。根据2010年12月8日发布的消息,针对VS的服务包的测试版已经在修复。哈利路亚!现在我只需要等到SP完成,因为我太害怕安装测试代码。 – user171197 2010-12-22 15:57:41

+0

有同样的问题。安装SP1的发布版本,问题解决了。感谢张贴这! – 2011-03-30 19:29:33

+1

更正:它*被固定。 :( – 2011-05-06 18:29:17

3

您确定您的代码调用的程序集具有调试符号吗?您可能会引用在发布模式下编译的dll。

5

您是否打开了优化?如果程序是高度优化的,那么可以抛出执行的顺序,并且事物可以以并不总是清楚的方式扩展或重新排列。

3

当调试运行所针对的是不匹配你正在寻找的源代码pdb文件会发生这种情况。确保bin(或从哪里运行)是最新的,并且是使用您在调试器中运行的相同源代码构建的。

0

单击重建解决方案。

+0

不起作用,.. – toto 2011-05-02 19:09:06

3

您使用线程或后台工作?在调试时,我相信所有线程都会暂停,因此可能会在它们之间切换。否则,你可能会有过时的调试信息,删除你的bin和obj目录,并做一个干净的构建。当你的调试解决方案配置是最新的

3

这也有可能发生,但你尝试调试在Release配置程序(如果那是不是也跟上时代的)...反之亦然。

您可以在调试来回切换运行之间或使用旁边绿色的下拉发布配置在屏幕顶部的“播放”箭头。

+0

他在VB.NET中,解决方案配置下拉列表默认情况下不显示。自定义工具栏以包含它。 – 2012-06-19 11:13:55

1

我最近在Windows 7 32位上的Visual C++ 2008中出现了类似的问题。在问题首次出现之前的几分钟,系统对话框窗口“VC.exe遇到问题,需要退出”显示了,但Visual C++窗口似乎仍然存在。

问题第一次出现后,我尝试了几种方法来得到它回来就好重建解决方案或重新启动Visual Studio的工作。然而,它仍然表现得很奇怪:它没有与我几周没碰过的目标文件链接,显示为“断点目前不会被打中。 “

没有什么帮助,直到我重新启动计算机,并最终重建解决方案(实际上两次)。