我有一个WinForms托管应用程序调用本机C++ dll。我已经为该项目启用了混合托管和非托管调试,并且在调试项目时能够进入非托管代码。 我对JIT调试很感兴趣,因为在调试器外面运行调试版本要快得多,并且只有在违反某些断言后才开始调试。当托管代码中引发异常时,JIT调试器正常工作。当我JIT调试一个独立的C++应用程序时,它也可以工作。但是,无论何时在从WinForms应用程序调用的非托管代码内引发异常,JIT调试程序在启动调试会话后立即退出。我已经在选项/调试/实时列表中启用了所有的JIT调试器。这种情况是否支持?Visual Studio即时调试器立即退出
UPDATE
我已经运行一些测试,我可以看到
- 这个问题是不特定的WinForms应用程序。当托管控制台应用程序调用本机dll时JIT调试失败,这引发了断言异常。
- 该问题似乎不依赖于框架版本。我试过版本3.5,4,4.5,4.6。
- 当我将调试器附加到托管主机应用程序时,调试器也无法在非托管代码中断言断言异常。
谢谢你,但是这似乎并不在这里如此。断言异常已启用,并且在运行独立本机应用程序时正确捕获。只有在从托管代码调用的本地dll内引发断言异常时,它才会进行jit-debug。但以防万一我已启用所有例外。同样的问题。 – Max