调试时如何从 C# 应用程序步入 C/C++ DLL

Posted

技术标签:

【中文标题】调试时如何从 C# 应用程序步入 C/C++ DLL【英文标题】:How to step into C/C++ DLL from C# application while debugging 【发布时间】:2010-10-20 09:52:41 【问题描述】:

我的解决方案中有两个项目:C/C++ Win32 DLL 和一些 C# 应用程序。

我必须做什么才能在调试时进入 DLL?

我打开了 C++ 项目设置中的所有调试选项,并将下一个文件复制到 C# 应用程序根目录:MyLib.dll、MyLib.pdb、vc90.pdb、vc90.idb,但没有帮助。

我还需要执行哪些其他操作?

【问题讨论】:

【参考方案1】:

您是否在 C# 项目中开启了启用非托管代码调试?

【讨论】:

谢谢谢谢谢谢。哦,我什至不想考虑我花了多少时间独自寻找这个。 VS2012(可能还有 VS2010 更新):该选项现在被命名为 Enable native code debugging 它仍然是 Enable Debuggers 下面的第一个选项 作为附加组件,您需要在调用 pinvoke 函数的 c# 项目以及应用程序的托管入口点(项目)上设置此选项。【参考方案2】:

如果您通过调试 > 附加到进程附加调试器,在单击“附加到进程”对话框中的“附加”之前,请确保选择适当的代码类型 可以附加调试器。

【讨论】:

以上是关于调试时如何从 C# 应用程序步入 C/C++ DLL的主要内容,如果未能解决你的问题,请参考以下文章

在 PyCharm 中调试时如何避免步入内置函数?

混合模式调试(C++、C#、VB)

Visual Studio Code - Python 调试 - 执行时步入外部函数的代码

使用 PInvoke 连接 C/C++ DLL 的调试断言失败

如何判断 C#程序是不是处于调试状态

从 C# .NET 应用程序调用 C/C++ 代码