在随机点停止 Ctrl-F5 -> 立即加载。意思是我必须“附加到过程”进行调试。 如果我想更改代码并立即反射(reflect)出来,这会很烦人。 这是否与加载符号源有关?我试过在正常 D-6ren">
gpt4 book ai didi

c# - 应用程序很少在 Debug模式下完成加载,但 "run without debug"加载正常

转载 作者:行者123 更新时间:2023-11-30 18:01:35 24 4
gpt4 key购买 nike

  • 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com