2015-08-13 29 views
1

风云作弊:如何在有源代码时调试dll?

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

问题:

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

回答

2

在调试选项卡项目设置有“启用原生代码调试”

enter image description here

你必须有一个箱子检查,以能够在执行到C++代码的复选框。一旦你有了检查,你应该能够介入到C#代码中。

如果你发现你仍然无法在禁用“仅我的代码”步骤中的“调试” - >“选项和设置”下拉菜单

enter image description here

如果你仍然无法一步到位,请确保你有包含调试元数据的dll的.pdb文件,当程序暂停时,进入“Debug” - >“Windows” - >“Modules”下拉菜单,并检查是否看到“Symbols loaded”符号状态列。

enter image description here

如果你看到的DLL,但没有加载你可以右键点击并进入“加载符号”关于DLL的线,并找到PDB。

如果您根本没有看到该DLL,那么必须至少运行一次程序,直到它至少使用过一次C++ dll,以便将其加载到内存中。

+0

感谢您的快速回答!我只是想知道我在哪里放置C++代码,以便知道何时使用我的dll,它必须跳转到特定的C++代码中? – Cher

+1

你不能只有源代码,你也需要pdb。请参阅我的更新版本以了解如何加载pdb。 –