.net - Visual Studio 调试引用的 DLL

标签 .net debugging dll

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

此 DLL 访问网站时出现异常,我想调试它(DLL)。我可以这样做吗?我可以以某种方式深入了解 DLL、设置断点等吗?我听说过“附加调试器”,但我从未这样做过,更不用说使用 DLL 了。执行此操作的步骤是什么?

最佳答案

堆栈溢出问题 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 等工具时获取源代码。进行调试。

关于.net - Visual Studio 调试引用的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671654/

相关文章:

用于拆分 url 和删除最后一部分的 javascript

c# - datagridview 行点击

C++ Qt MingW 错误重新定位 0xc 地址在 rdata 节中

c++ - 使用外部库(GEGELATI)时出现问题

.net - 在运行时获取XAML类型的URI

c# - 如何从 C# 中的文本框移除焦点

delphi - 如何打印到 C++Builder 输出窗口

java - Google Compute Engine 上 Hadoop 中的标准输出

无法在我的 Linux 迷你调试器中设置断点

windows - 如何重命名 DLL 但仍允许 EXE 找到它?