7

我需要调试一些程序集,因为它们会抛出异常。这是我的程序集,但我没有它们的源代码。我拥有的是他们的 pdb 文件。

有没有办法通过 Visual Studio 调试该程序集?

- 编辑 -

当然,我也可以反汇编得到它们的 *.il 文件。它会以某种方式帮助我吗?

4

5 回答 5

6

实际上有几种方法可以做到这一点:

  1. 使用 dnSpy - 免费的开源 .net 调试器和程序集编辑器https://github.com/0xd4d/dnSpy
  2. 使用 dotPeek 设置符号服务器(也是免费的)https://www.jetbrains.com/help/decompiler/Using_product_as_a_Symbol_Server.html
  3. 使用 Resharper 反编译器为您的 Visual Studio 中的外部模块加载符号。我认为这是最简单的方法。我已经在我的博客https://cezarypiatek.github.io/post/debug-without-sources-part-one/上描述了整个过程
于 2017-12-11T19:19:28.263 回答
4

这正是我为Reflector付费的原因。需要调试别人的程序集?它完美地工作。

于 2012-11-21T16:15:41.253 回答
3

据我所知,PDB 文件只是调试的指针。也就是说,如果您没有源代码,那么 PDB 文件只会为您提供堆栈跟踪。

我不知道 Visual Studio 是否可以处理它,您可能需要手动连接到该过程。

于 2012-11-21T16:13:19.520 回答
1

不完全是在视觉工作室,但我过去在反射器中写了这样一个工具,叫做 d Deblector。不再由我管理,但看看。当然,调试体验与 Visual Studio 中的不同,但有时足以让您摆脱困境。

于 2012-11-21T16:07:13.117 回答
1

查看 dotPeek: https ://www.jetbrains.com/decompiler/

您可以将其设置为 Visual Studio 中的符号服务器,以生成允许您调试的 PDB 文件。它非常易于使用,并且与许多付费产品一样好。

您可以直接从 nuget 添加库,或指向 DLL。

于 2017-12-11T19:27:27.347 回答