gpt4 book ai didi

c# - 如何从 .NET 核心 C# 项目中调试并进入 native 代码项目?

转载 作者:太空狗 更新时间:2023-10-29 21:56:40 27 4
gpt4 key购买 nike

我正在 VS2015 中开发 .NET 核心(.NET 标准 1.6)应用程序。应用程序通过 P/Invoke 调用 C++ 代码。现在我需要进入我的原生 dll 项目的 C/C++ 代码。

在常规的 .NET 应用程序中,通过在应用程序的属性窗口中启用非托管代码调试,我们可以直接进入 C/C++ 代码:

step into the C/C++ code

但我在 .NET 核心项目上找不到这样的选项。而且我知道我可以将调试器附加到应用程序以调试 native 代码,但这不适合我的情况。

同样,我想从托管 C# 代码调试 native C/C++ 代码。

有什么想法吗?

也许我应该切换回 .NET Framework,以便调试 native 代码。用printf 调试真的很难。 :(

最佳答案

更新
已实现混合模式调试,即从托管 C# 代码调试到 native C/C++ 代码。参见 Tutorial: Debug managed and native code in Visual Studio .

更新
该功能可能已经实现,请参阅 this .


正如@cynic所说,现在还不支持(2016-11-1)。

这可以通过以下由 cynic 提供的步骤来验证。

  1. 在您的程序中暂停(例如调用 Console.ReadKey)。
  2. 附加到选择“托管 (CoreCLR)”和“ native ”代码类型的 dotnet.exe 进程
  3. 您会收到一个消息框,明确指出“不支持互操作调试”。

Not supported.

这里是 a proper way调试 native dll。

  1. Right click on the solution, Add Existing Project
  2. Open 'dotnet.exe'. This is normally installed to 'C:\Program Files\dotnet\dotnet.exe'.
  3. You should now see another node in solution explorer for dotnet.exe. Right click it to bring up project properties:
  4. Change the working directory to be what you want
  5. Change the arguments to be the path to your built dll
  6. Change the exe project to your startup project

RECOMENDED: Go to Tools->Options->Projects and Solutions->Build and Run, uncheck 'Only build startup projects and dependcies on Run'

关于c# - 如何从 .NET 核心 C# 项目中调试并进入 native 代码项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40355753/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com