【问题标题】:Application rarely completes loading in debug mode, but "run without debug" loads fine应用程序很少在调试模式下完成加载,但“无调试运行”加载正常
【发布时间】:2012-02-18 05:38:28
【问题描述】:
  • F5 -> 随机停顿

  • Ctrl-F5 -> 立即加载。这意味着我必须“附加到 进程”来调试。

如果我想更改代码并立即反映出来,这会很烦人。

这与加载符号源有关吗?我尝试在正常调试模式下运行时暂停应用程序,但每次都会在不同的地方暂停。

编辑:通过停止我的意思是应用程序被冻结(带有进度条的启动画面在加载几秒钟后变得无响应)。如果我点击暂停,主线程的位置永远不会一致。它最终会在某个时间点完成加载,表明它正在等待某些东西,尽管这个等待时间似乎也发生了变化。

Microsoft pdbs 的符号服务器未选中。未选中启用的 .NET Framework 源单步执行。已启用 Just My Code 已选中。未选中启用的源服务器支持。

【问题讨论】:

  • 什么是'摊位'? Visual Studio 停止响应,或者应用程序本身没有运行?
  • 当它暂停时,您是否尝试过恢复并重新暂停?如果是这样,它在这两者之间是否取得了任何进展?您应该提供有关该问题的更多信息。
  • Web App、WinForms、Silverlight或Windows WPF、控制台APP、Windows Services、Windows Phone是什么平台?
  • 我的水晶球说,检查线程,启动时执行的异步代码。
  • 您是从公共符号服务器加载符号吗?

标签: c# winforms visual-studio devexpress


【解决方案1】:

一个已知但偶发的问题,自 Visual Studio 2005 以来已有很长的历史。该问题会影响多线程应用程序,这些应用程序使用完成回调执行一些 I/O 操作。解决此问题的个人收据:

  • 开发者机器应至少有 2 个 CPU 内核
  • 从断点窗口中删除所有断点。有时过时的会导致调试器无限循环
  • 在程序的最开始处设置断点,最好在主函数处。如果你有一个主窗体,那么你可以尝试在其构造函数的第一行设置一个断点。不要删除该断点 - 否则调试器将再次开始挂起,您需要再次设置它。是的,断点似乎没什么用,但它有助于调试器保持良好状态
  • 如果上述建议没有帮助,如果应用程序没有窗口,请尝试在程序的最开始调用 System.Window.Forms.MessageBox.Show("123")。您也可以尝试在 Show 方法上或之后设置断点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多