有时在调试期间,调试器会随机向前跳过。有时我会进入另一个函数内部的函数,而不是转到下一行,它将来会跳到一个看似随机的地方。有时到另一个功能的中途。 它似乎总是尊重断点,即如果将来设置断点,它永远不会跳过它。
我正在运行64位Win 7和visual studio 2010终极版。我没有使用线程。在visual studio 2008中,我从未想过这样。我该如何解决这个问题?
答案 0 :(得分:5)
您是否启用了优化功能?如果程序经过高度优化,则可以抛弃执行顺序,并且可以以不总是清晰的方式扩展或重新排列。
答案 1 :(得分:4)
我遇到类似的问题,在XP机器上使用Visual Studio 2010调试C#程序。调试器只是随机跳转到其他一行或下一个断点。
似乎Microsoft已在SP1中发布了针对此的修复程序。
答案 2 :(得分:3)
您确定代码调用的程序集有调试符号吗?您可能引用了在发布模式下编译的dll。
答案 3 :(得分:3)
当调试器针对与您正在查看的源代码不匹配的pdb文件运行时,可能会发生这种情况。确保bin(或您运行的位置)是最新的,并且是使用您在调试器中运行的相同源代码构建的。
答案 4 :(得分:3)
您使用线程还是后台工作者?在调试时我相信所有线程都被暂停,所以它可以在它们之间切换。否则,您可能有过时的调试信息,删除您的bin和obj目录并进行干净的构建。
答案 5 :(得分:3)
当您的Debug解决方案配置是最新的,但您尝试在Release配置中调试程序时(如果它也不是最新的),也会发生这种情况......反之亦然。
您可以使用屏幕顶部绿色“播放”箭头旁边的下拉菜单在调试或发布配置中运行之间来回切换。
答案 6 :(得分:1)
我最近在Windows 7 32位上的Visual C ++ 2008中遇到了类似的问题。问题首次出现前几分钟,系统对话框窗口“VC.exe遇到问题并需要退出”,但Visual C ++窗口似乎存在。
问题首次出现后,我尝试了几种方法让它恢复工作,如重建解决方案或重新启动Visual Studio。然而,它仍然表现得很奇怪:它无法链接到我几周未触及的目标文件,显示“断点当前不会被击中。源代码与原始版本不同。“等。
在我重新启动计算机并最终重建解决方案(实际上两次)之前没有任何帮助。
答案 7 :(得分:0)
单击“重建解决方案”。