我正在VS2015中开发.NET核心(.NET Standard 1.6)应用程序。应用程序通过P / Invoke调用C ++代码。现在我需要进入我原生dll项目的C / C ++代码。
在常规.NET应用程序中,通过在应用程序的属性窗口中启用非托管代码调试,我们可以直接进入C / C ++代码:
但我无法在.NET核心项目中找到这样的选项。我知道我可以将调试器附加到应用程序以仅调试本机代码 ,但这不适合我的情况。
同样,我想从托管C#代码调试到本机C / C ++代码。
有什么想法吗?
也许我应该切换回.NET Framework,以便我可以调试本机代码。 printf
调试真的很难。 :(
答案 0 :(得分:1)
<强>更新强>
已经实现了混合模式调试,即从托管C#代码到本机C / C ++代码的调试。请参阅Tutorial: Debug managed and native code in Visual Studio。
<强>更新强>
该功能可能已经实施,请参阅this。
正如@cynic所说,现在还没有支持( 2016-11-1 )。
可以通过以下cynic提供的步骤进行验证。
这是调试本机dll的a proper way。
- 右键单击解决方案,添加现有项目
- 打开'dotnet.exe'。这通常安装在'C:\ Program Files \ dotnet \ dotnet.exe'。
- 您现在应该在解决方案资源管理器中看到dotnet.exe的另一个节点。右键单击它以显示项目属性:
- 将工作目录更改为您想要的
- 将参数更改为内置dll的路径
- 将exe项目更改为启动项目
醇>推荐:转到工具 - &gt;选项 - &gt;项目和解决方案 - &gt;构建并运行,取消选中“仅在运行时构建启动项目和依赖”