无需源码在VS中调试

问题描述 投票:0回答:6

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

有什么方法可以通过 Visual Studio 调试该程序集吗?

--编辑--

当然,我也可以反汇编它们以获得它们的 *.il 文件。它会对我有帮助吗?

c# .net visual-studio-2010 debugging
6个回答
7
投票

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

  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 反编译器在视觉工作室中加载外部模块的符号。我认为这是最简单的方法。我在我的博客上描述了整个过程https://cezarypiatek.github.io/post/debug-without-sources-part-one/

4
投票

这正是我花钱购买Reflector的原因。 需要调试别人的程序集吗?它工作得完美


3
投票

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

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


1
投票

不完全是在 Visual Studio 中,但我过去在反射器内部编写了这样一个工具,称为 d Deblector。不再由我维护,但你可以看看。当然,调试体验与您在 Visual Studio 中获得的调试体验不同,但有时足以让您摆脱麻烦。


1
投票

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

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

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


0
投票

如果程序是托管程序,则可以选择 dnSpy,但您可以在 Visual Studio 中打开 .exe 文件,就像打开 .sln 文件一样。

您将能够调试和查看机器代码。

有关更多信息,请参阅此博文

© www.soinside.com 2019 - 2024. All rights reserved.