【发布时间】:2020-06-21 12:13:30
【问题描述】:
我有一个调用本机 dll 的托管项目 (.net 4.6.2)。如果我在本机代码中放置一个断点,它会命中它,但是如果我尝试检查堆栈变量,我会感到相当烦人
检查非托管类型“MyTypeInHere*”需要非托管 调试启用。请将调试器类型设置为“混合”并且 再试一次
我按照https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2019、Debugging unmanaged code while debugging managed code 的步骤操作,但我仍然无法检查类型。
在托管项目属性中,在调试下我启用了enable native code debugging,在构建页面下我检查了allow unsafe code。在launchSettings.json 中,我有"nativeDebugging": true
另请注意,在本机项目属性设置中,我已将调试器类型设置为 mixed。
有人知道是什么阻止我调试本机代码吗?
谢谢
【问题讨论】:
-
当断点工作时,您可以确定您正确配置了调试器。在单击堆栈跟踪窗口时必须小心一点,它可以让您跳转到托管方法。这会切换调试器引擎,它现在对非托管代码一无所知。
标签: visual-studio-debugging mixed-mode