在调试过程中,调试器偶尔会出现随机跳过的情况。有时候我在一个函数内部单步调试,但不是跳转到下一行,而是跳到了将来的某个看似随机的地方,有时候甚至是在另一个函数的中途。 但是它总是遵循断点,即如果在将来设置了断点,它永远不会跳过它。
我使用64位Win 7和Visual Studio 2010 Ultimate,没有使用线程。在Visual Studio 2008中从未发生过这种情况。如何解决这个问题?
在调试过程中,调试器偶尔会出现随机跳过的情况。有时候我在一个函数内部单步调试,但不是跳转到下一行,而是跳到了将来的某个看似随机的地方,有时候甚至是在另一个函数的中途。 但是它总是遵循断点,即如果在将来设置了断点,它永远不会跳过它。
我使用64位Win 7和Visual Studio 2010 Ultimate,没有使用线程。在Visual Studio 2008中从未发生过这种情况。如何解决这个问题?
你是否启用了优化?如果程序高度优化,执行顺序可能会被打乱,事情可能以不总是清晰的方式扩展或重新排列。
我在XP机器上使用Visual Studio 2010调试C#程序时遇到了类似的问题。调试器会随机跳转到其他行或下一个断点。
看起来微软已经在SP1中发布了解决此问题的修补程序。
您确定您的代码调用的程序集具有调试符号吗?您可能正在引用以发布模式编译的dll。
当调试器运行的pdb文件与您查看的源代码不匹配时,就会发生这种情况。请确保bin目录(或您正在运行的目录)是最新的,并且是从您在调试器中运行的相同源代码构建的。
如果您的Debug方案配置是最新的,但您尝试在Release配置中调试程序(如果那也不是最新的),则可能会发生这种情况......反之亦然。
您可以使用屏幕顶部绿色“播放”箭头旁边的下拉菜单在Debug或Release配置之间切换运行。
点击重新构建解决方案。