我有一个使用外部C++DLL的C#应用程序,由于某种原因,我不能再在Visual Studio中单步执行它的函数.我曾经可以,但现在,每次我try ,我都会在NTDLL内结束反汇编,而不是在我的C++函数中.如果我在C++代码中调用DebugBreak()
,我会收到一条奇怪的错误消息,比如"命中了CLR无法处理的断点".
我在C#应用程序的调试配置文件中打开了"Enable native code debugging",关闭了"Hot Reload"和"Edit and Continue",这有时会给本机代码调试带来麻烦,但我仍然不能单步执行C++代码.
下面是我在C#端的函数声明:
[DllImport("Foo.dll"), SuppressGCTransition]
public static extern unsafe void DoSomething();
这是在C++端:
__declspec(dllexport) void DoSomething()
{
...
}
为什么我不能进入此功能?我使用的是Visual Studio 2022,17.5.3.