如何在有源代码的情况下调试dll?

时间:2015-08-13 19:03:57

标签: c# visual-studio-2013

情况:

我们有一个C#应用程序,它使用由其他人编码的dll。 dll指的是C ++代码。 C#应用程序通过包装器调用dll(C#函数然后调用C ++函数)。

问题:

有一个特定的C ++代码调用崩溃了。我需要进入C ++代码。我知道这是可能的,但我不知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

在调试选项卡的项目设置中,有一个复选框,用于"启用本机代码调试"

enter image description here

您必须选中该框才能进入C ++代码。完成检查后,您应该能够进入C#代码。

如果您发现仍然无法进入禁用状态" Just My Code"在" Debug" - > "选项和设置"下拉菜单

enter image description here

如果您仍然无法介入,请确保您拥有包含调试元数据的dll的.pdb文件,当程序暂停时,请转到" Debug" - > "视窗" - > "模块"下拉并检查是否看到"符号已加载"在符号状态列下。

enter image description here

如果您看到DLL但未加载,您可以右键单击并转到"加载符号"在DLL的行上找到pdb。

如果你根本没有看到DLL,你必须更多地运行你的程序,直到它至少使用过你的C ++ dll,所以它已被加载到内存中。