【发布时间】:2016-08-16 18:24:01
【问题描述】:
我有一个调用本机 C++ dll 的 WinForms 托管应用程序。我已经为项目启用了混合托管和非托管调试,并且在调试项目时我能够进入非托管代码。 我对 JIT 调试很感兴趣,因为在调试器之外运行调试构建并且仅在违反某些断言后才开始调试要快得多。当托管代码中引发异常时,JIT 调试器工作正常。当我 JIT 调试独立的 C++ 应用程序时,它也可以工作。但是,只要在从 WinForms 应用程序调用的非托管代码中引发异常,JIT 调试器就会在我启动调试会话后立即退出。我已经在 Options/Debugging/Just-In-Time 列表中启用了所有 JIT 调试器。是否完全支持这种情况?
更新
我已经进行了一些测试,我可以看到
- 此问题并非特定于 WinForms 应用程序。当托管控制台应用程序调用本机 dll 时,JIT 调试也会失败,这会引发断言异常。
- 问题似乎与框架版本无关。我尝试了 3.5、4、4.5、4.6 版本。
- 当我将调试器附加到其托管主机应用程序时,调试器也无法中断非托管代码中的断言异常。
【问题讨论】:
标签: c# c++ visual-studio-2015