Visual Studio调试器跳过断点

15

我的 Visual Studio 2008 IDE 在调试单元测试时表现非常奇怪:我设置了一个断点,当我命中它并尝试使用 F10 进行步进时,测试就会结束。如果我在被测试方法内的每一行上设置断点,我最终会停留在其中一个随机的位置,而不是下一行的位置。我已经在干净的系统重新启动后清理和重建了解决方案,但这种行为仍然存在。还有其他人遇到过这种情况吗?是否有结论得出。

此测试仅使用主执行线程(没有创建额外的线程)。


2
你只有在从单元测试中调试时才遇到这个问题吗?你是否也尝试从控制台应用程序运行相同的代码?你使用哪个测试框架? - jeroenh
调试版本?关闭优化?正确的符号文件?可能有另一个线程在同一个函数内执行吗?堆栈损坏?是否有模态 UI 弹出(特别是断言失败),可能正在另一个线程中发送消息? - Adrian McCarthy
@jeroenh: 在非单元测试条件下,我的项目出现了一些奇怪的问题。这是服务代码,调试构建是控制台应用程序。我正在使用Visual Studio内置的单元测试框架。 - My Other Me
@Adrian:调试版本已确认。关闭优化已确认。如何确认符号文件?在单元测试框架中,函数内只有一个线程。如何检查堆栈损坏?目前仅为控制台应用程序进行调试,没有用户界面。 - My Other Me
你检查过测试结果文件夹是否也被清空了吗?要将服务作为控制台应用程序运行,你可以做两件事:1)将项目类型更改为控制台,2)在主方法中检查 Environment.IsInteractive(或类似的内容),并相应地调用 ServiceBase.Run... - Charles Prakash Dasari
13个回答

0

我的单元测试是在x86下进行的。将它们更改为x64就可以了。

菜单

测试 -> 测试设置 -> 默认处理器架构 -> x64


-1

我刚遇到了同样的问题,按照上面所有的建议都试过了,但都没有成功。后来发现在过去的某个时候,有人将方法签名更改为“private”,而它必须是“static”或“public”。当我将测试方法的签名改回“public”时,断点又开始工作了。


-1

F10 是“跳过”步骤,F5 是继续执行到下一个断点,F11 是“步进”,它会执行下一行代码然后等待。这可能是您正在寻找的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接