F5 -> 在随机点停止
Ctrl-F5 -> 立即加载。意思是我必须“附加到 过程”进行调试。
如果我想更改代码并立即反射(reflect)出来,这会很烦人。
这是否与加载符号源有关?我试过在正常 Debug模式下运行时暂停应用程序,但每次都会在不同的地方暂停。
编辑:我所说的停止是指应用程序被卡住(带有进度条的启动窗体在加载几秒钟后变得无响应)。如果我点击暂停,主线程的位置永远不会一致。它最终会在某个时间点后完成加载,这表明它正在等待某些东西,尽管这个等待时间似乎也会发生变化。
Microsoft pdb 的符号服务器未选中。未选中已启用的 .NET Framework 源步进。 Enabled Just My Code 被选中。未选中启用的源服务器支持。
最佳答案
一个已知但偶发的问题,自 Visual Studio 2005 以来就有很长的历史。该问题影响多线程应用程序,这些应用程序使用完成回调执行一些 I/O 操作。我个人收据来解决这个问题:
- 开发机器应该至少有 2 个 CPU 内核
- 从 Breakpoints 窗口中删除所有断点。有时过时的会导致调试器无限循环
- 在程序的最开始设置一个断点,最好是在 main 函数处。如果你有一个主窗体,那么你可以尝试在它的构造函数的第一行设置一个断点。不要删除该断点 - 否则调试器将再次开始挂起,您将需要重新设置它。是的,断点似乎没有用,但它有助于调试器保持良好状态
- 如果上述建议没有帮助,那么如果应用程序是无窗口的,则尝试在程序的最开始调用 System.Window.Forms.MessageBox.Show("123")。您也可以尝试在 Show 方法上或之后设置断点
关于c# - 应用程序很少在 Debug模式下完成加载,但 "run without debug"加载正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995902/