JIT 调试 .NET

JIT Debugging .NET

提问人:tdemay 提问时间:7/12/2017 更新时间:7/12/2017 访问量:576

问:

我在 Visual Studio 2010 中使用 C# 创建了一个服务。使用 .NET Framework v4.0。在 Windows 7 32 位计算机上运行。该服务调用我创建的本机 DLL。此 DLL 引发访问冲突。

我无法调试它,需要帮助。

我启动服务并以管理员身份运行我的 IDE。该服务在我登录计算机时使用的同一用户帐户下运行。我使用托管 v4.0 和本机附加代码类型附加到服务。但是当它崩溃时,会弹出一个对话框,显示我的应用程序中出现“未处理的 Microsoft .NET 框架异常”。 “实时调试器是在没有必要的安全权限的情况下启动的。若要调试此过程,必须以管理员身份运行实时调试器。是否要调试此过程?即使我使用“以管理员身份运行”启动了 Visual Studio。

当我单击“是”时,我收到另一个警告“当前调试器配置为调试使用 Microsoft .NET Framework v1.0、1.1 或 2.0 的代码。.NET Framework v4.0 代码中引发了未经处理的异常”。即使我使用 Managed v4.0 和 Native 附加到进程。(我只尝试过 Managed v4.0 并得到相同的结果)。

单击“确定”,然后启动 IDE 的新实例。然后,IDE 将显示一条警告,指出“无法附加到崩溃的进程。调试器已附加。

所以我再试一次,这次没有附加调试器,希望得到相同的JIT弹出窗口,这样我就可以在崩溃后附加,但我没有。该过程就消失了,或者我得到了关于创建小型转储并将其发送到 Microsoft 的通常对话框。

因此,我尝试满足于完全崩溃转储。

我按照收集用户模式转储中的说明创建完整转储。我将观察 WerFault.exe 在任务管理器中启动,并观察文件创建,当 WerFault 完成时,故障转储消失或堆栈跟踪缺少本机代码。

我似乎不时在调试.NET进程时遇到类似的问题。如何可靠地配置计算机,以便进行 JIT 调试?

C# Visual-Studio-2010 调试

评论

0赞 Alexander Higgins 7/12/2017
您可以尝试在新版本的 VS 中进行调试吗?也许框架是 VS 2010 不支持的 4.6?您可能需要以前版本的定位包。
0赞 tdemay 7/13/2017
不幸的是,我们没有许可证。但是机器上甚至没有安装框架 4.6。项目和所有 .NET 依赖项肯定是使用 .NET 4.0 构建的。

答: 暂无答案