Visual Studio调试引用的DLL

时间:2009-11-04 04:20:28

标签: .net debugging dll

我有一个ASP.NET网站,它使用来自另一个Visual Studio解决方案的编译DLL(拥有DLL的原始解决方案 - .cs文件,.csproj.sln等。 )作为参考。

从这个DLL进入网站有一个例外,我想调试它(DLL)。我可以这样做吗?我可以深入研究DLL,设置断点等吗?我听说过“附加调试器”,但我从未这样做过,当然也没有使用DLL。执行此操作的步骤是什么?

1 个答案:

答案 0 :(得分:6)

Stack Overflow问题 Debugging a third-party DLL in Visual Studio.NET? 正在问同样的事情。它的答案基本上是使用.NET Reflector来反编译DLL并查看代码。

但是,如果您有DLL的解决方案和所有源代码,那么您可以将引用更改为指向其他项目而不是DLL。然后你就可以像代码中的任何其他函数一样进入函数。

另一种方法,如果你有代码,那就是运行应用程序并附加到进程。为此,您将在Visual Studio中打开另一个解决方案,并将调试器附加到ASP.NET工作进程(aspnet_wp或类似的东西,如果我没记错的话)。这将允许您设置断点,并在您访问网站的正确部分时将其命中。例如,您正在浏览本地IIS上的Internet Explorer中的站点,这将是ASP工作进程。如果您在Visual Studio中运行它,则可能使用内置Web浏览器。所以你需要附上那个。

如果你有DLL的pdb文件,可能有办法做到这一点,但我从来没有真正尝试过这样做。我知道如果你有pdb文件,那么你可以在使用像WinDbg这样的工具进行调试时获取源代码。

相关问题