gpt4 book ai didi

vb.net - VShost32.exe 停止工作,但我可以继续调试

转载 作者:行者123 更新时间:2023-12-02 08:14:52 25 4
gpt4 key购买 nike

我的应用程序首先从数据库读取数据,然后创建要上传到 SFTP 服务器的 XML 文档。

当我运行应用程序时,出现错误:

VShost32.exe 停止工作

当我在 Debug模式下运行应用程序并单步执行它时,我找到了弹出错误的点,但我仍然可以继续执行下一步(只要我不关闭弹出窗口) 。那么,所有该做的事情,都已经完成了。完全没有问题。

那么为什么我会收到此错误消息?完全不清楚是什么原因造成的。

另外,我该如何摆脱它?

最佳答案

VSHost32.exe 是 Visual Studio 托管进程。它有一个自定义托管版本的 CLR,使调试更加容易。实际的进程名称是yourapp.vshost.exe,您可以在任务管理器中看到它正在运行。

因此,该消息的真正含义是您的程序已崩溃,但不是调试器可以识别的方式。如果您使用的库启动自己的非托管线程并且该线程因未处理的异常而崩溃,那么这在技术上是可能的。默认情况下,调试器只能诊断托管代码启动的线程上引发的异常。

在这次崩溃后您能够继续调试是非常不寻常的,并且可能非常不健康。如果您使用的库使用 SetUnhandledExceptionFilter() 安装自己的未处理异常过滤器并吞掉异常,那么这在技术上是可行的。但是托管进程看到它之后才会这样做。这是非常了不起的。

通过启用非托管调试器获得更好的诊断。项目+属性,调试选项卡,勾选“启用非托管代码调试”选项。然后“调试”+“异常”,勾选“Win32 异常”的“抛出”复选框。重现崩溃场景,调试器现在应该在引发异常时停止。查看调用堆栈以获取提示。您将看不到任何可识别的内容,因为崩溃的代码可能没有任何调试信息。但希望包含代码的 DLL 名称可以让您了解哪个库负责此操作。然后联系该库的供应商并询问详细信息。

关于vb.net - VShost32.exe 停止工作,但我可以继续调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381842/

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