应用程序处于中断模式 - 无法确定原因

时间:2017-09-07 18:31:08

标签: vb.net debugging ide visual-studio-2017

我遇到应用程序终止时IDE有时会中断。

发生这种情况时,调用堆栈为空,并且线程列表显示一些不向我透露任何信息的线程。

当我选择“Debugger” - “Step into”时,IDE似乎正常退出/终止,所以我不知道如何进一步调查是什么导致了破解。

单击“检查正在运行的任务”不会显示任何任务。 单击“继续执行”似乎正常退出调试。 单击“显示诊断工具”会显示事件“执行时停止:执行时停止”,这不再告诉我。

附上截图。

我如何调查造成这种中断的原因?

enter image description here

编辑: 我已经尝试过一个论坛成员所建议的内容,但我认为这不会产生任何可以帮助我的事情。这是截图:

enter image description here

8 个答案:

答案 0 :(得分:6)

在我的一个Web应用程序中,我遇到了同样的问题,为了找出问题,在搜索类似的问题后,大多数建议更改我的调试选项。所以在调试选项中,一般情况下,我标记了第二个选项“当一个进程中断时断开所有进程”,并且几乎在底部,“启用本机编辑并继续”; “应用更改并继续”。

有了这个,我的应用程序终于停止了我遇到问题的地方(ajax不喜欢的字符串中的非法字符)并且能够评估值并找出问题所在,编辑代码直到它工作。 这是我的调试器选项的屏幕截图。 希望你能抓住你的错误:)

Debugger options

答案 1 :(得分:5)

如果代码是库的一部分或者您未编写的其他内容,则可能无法看到异常发生的代码。以下内容可能有所帮助:

调试>选项>一般>取消选中“启用我的代码”

答案 2 :(得分:3)

当您在调试器中时,您可以导航到监视窗口并使用伪变量来显示有关根本原因的一些信息。一个特别有用的是$exception

enter image description here

查看有关pseudovariables的文档。

答案 3 :(得分:2)

我没有找到任何方法来实际调试问题。 我用暴力的方式解决了这个问题:

我逐个删除了所有程序集和COM对象,直到错误消失。

就我而言,我在一个模块中有一个带有WithEvents的公共控件。 似乎VB.NET根本就不喜欢这样。 从现在开始,我将把控件和它的形式放在一个表格中。

然而,主要问题仍然存在:Visual Studio没有提供任何帮助来轻松隔离问题。

答案 4 :(得分:2)

当单线程Winforms应用程序花费60秒以上来完成主线程中的操作时,也会发生这种情况。

我在处理太长时间内,通过主线程定期调用 Application.DoEvents(),以肮脏的方式解决了这个问题。 Application.DoEvents调用之间发生的异常在IDE中正确处理。

答案 5 :(得分:2)

转到异常设置,然后取消选中“ Magaged Debugging Assistants” enter image description here

答案 6 :(得分:0)

这可能是因为某些方法或构造函数不可访问(私有或内部),将其视为公共。

XAML需要调用方法来启动应用程序

答案 7 :(得分:0)

这只是在调试模式下运行程序时的警告消息。 如果更改为“发布”模式,则不会再显示此消息。