尽管启用了本机代码调试,但是仍无法从托管调试本机代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尽管启用了本机代码调试,但是仍无法从托管调试本机代码相关的知识,希望对你有一定的参考价值。
我有一个托管项目(.net 4.6.2),该项目调用一个本机dll。如果我在本机代码中放置一个断点,它会命中它,但是如果我尝试检查堆栈变量,我会感到非常烦恼
检查非托管类型'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
。
有人知道是什么阻止了我调试本机代码吗?
谢谢
有人知道是什么阻止了我调试本机代码吗?
这很奇怪,我遵循了您的链接提供的示例,并且效果很好。实际上,所有步骤只是规则。
所以请检查以下内容:
[1)请确保您的c ++项目正在使用Active(Debug)配置和x64平台。当您将Debugger type
更改为mixed
,然后单击“应用”时,请记住要重建项目。
[2)将本机代码引用到C#项目中时,请关闭VS实例,删除obj,bin,.vs
隐藏文件夹,然后重新打开c#项目。之后,请确保选中Enable Native Code debugging
,然后重新构建整个解决方案。
3)将target gramework
更改为4.7.2
以再次测试。
[4)请尝试创建一个新的net framework 4.7.2
c#项目,以测试问题是否由旧项目引起。
另外,如果所有步骤均无效,请do a repair in VS Installer。
以上是关于尽管启用了本机代码调试,但是仍无法从托管调试本机代码的主要内容,如果未能解决你的问题,请参考以下文章