C# 如何单步执行dll方法调用或构造函数,以便它请求源代码?

C# 如何单步执行dll方法调用或构造函数,以便它请求源代码?,c#,visual-studio,visual-studio-2010,C#,Visual Studio,Visual Studio 2010,我有一个用于我的项目的公共dll。我们已经制作了一个nuget包,并在我的公司本地使用它 但是,现在我从该dll内部得到一个空引用异常。如果我试图进入它(F11),它只是跨过它 现在,我来自Delphi背景,在Delphi中,您可以提供库的代码,它可以让您逐步了解它 我希望有一种方式可以说,“这是代码,请像我正在使用的dll一样仔细阅读。” 否则,我将不得不去改变对这个dll的引用,然后将代码添加到项目中。我可以这样做,但似乎应该有一个更简单的方法。试试这个 转到调试->选项和设置->调试->常

我有一个用于我的项目的公共dll。我们已经制作了一个nuget包,并在我的公司本地使用它

但是,现在我从该dll内部得到一个空引用异常。如果我试图进入它(F11),它只是跨过它

现在,我来自Delphi背景,在Delphi中,您可以提供库的代码,它可以让您逐步了解它

我希望有一种方式可以说,“这是代码,请像我正在使用的dll一样仔细阅读。”

否则,我将不得不去改变对这个dll的引用,然后将代码添加到项目中。我可以这样做,但似乎应该有一个更简单的方法。

试试这个

转到调试->选项和设置->调试->常规->取消选中选项:仅启用我的代码,然后尝试使用F11介入


您可以尝试的另一件事是手动加载其他dll的符号。进入调试模式后(在进入其他dll代码之前),进入调试->窗口->模块。它将显示所有已加载的DLL。右键单击dll并手动为其加载符号

确保您的dll也是调试版本,并且使用dll生成的.pdb文件与dll放在同一位置。重建当前项目,您应该能够单步执行函数调用。

如果您在另一个项目中有源代码,请尝试执行应用程序并附加到它(在VS菜单“调试->附加到进程”中)。Yoy应该能够在DLL内部进行调试


另一种选择是使用.NET Reflector或ILSpy。它们允许您在DLL中进行调试(如果尚未分发)。

如果您保留了符号文件,您应该能够单步执行。这取决于程序集是如何构建的,就是这样。一旦我复制了一个调试dll和.pdb,它工作得很好!