|
1
17
如果dll位于 .NET 语言,您可以使用类似 .NET Reflector 然后根据源代码进行调试。 或者您可以问供应商源代码是否可用。这可能是最简单的方法。 |
|
2
5
基于Andrew的答案,您只需将反编译的源代码视为项目中的一个新库,并在源代码中设置断点。删除对第三方dll的所有引用,以便它是正在执行的已反编译代码。 其他事项:
|
|
3
3
我遇到了两种方法: 1)从使用项目访问dll项目。 这涉及到在单独的Visual Studio实例中构建DLL,然后通过Visual Studio中的另一个项目访问该DLL(假定您有源代码)。 有很多方法可以做到这一点:
2)将使用进程附加到dll项目。 这涉及到将Visual Studio调试器挂接到正在运行的进程中。
|
|
|
4
3
对于调试几个第三方库以及 .NET 本身就是 WinDbg . 这是一个来自微软的很棒的调试器,我曾经用它来解决框架内部深层次出现的一些棘手问题。 你需要使用 Son of Strike (sos)扩展(如果它是托管dll)。它还可以调试本机。您需要了解一些调用堆栈和程序集/ CIL 使用说明。您应该能够确定异常及其原因。我们使用windbg/sos来查找,例如,在httpwebresponse中,如果您使用gzip压缩来下载一个页面,并且服务器返回了一个错误的gzip头,.net在threadpool中运行解压缩,崩溃会使您的进程中断。调试愉快。 |
|
|
5
1
正如塞萨尔·雷耶斯在堆栈溢出问题中提到的那样 Visual Studio - Attach source code to reference , ReSharper 5(及更高版本)具有此功能。 |
|
6
0
.NET Reflector 6附带了一个Visual Studio加载项,该加载项允许您在没有源代码的程序集上使用Visual Studio的单步调试。 看看这篇博文: http://www.simple-talk.com/community/blogs/alex/archive/2009/09/22/74919.aspx 了解更多详细信息。 这仍然是一个非常早期的构建。所以不能保证它能正常工作,它可能会破坏您的Visual Studio配置或项目配置。确保您有任何项目的备份(或源代码管理),您使用它。 此处下载: http://www.red-gate.com/MessageBoard/viewforum.php?f=109 |
|
7
0
我以为.NET Reflector有一些调试插件。这是一个更好的主意,因为反编译和重新编译代码通常会失败,您需要在代码中做很多更改来修复它。 请尝试.NET Reflector调试器。这可能对你有很大帮助。 |
|
|
8
0
这里我们应该提到的另一个选项是dotpeek 1.2(一个来自resharper创建者的免费反编译程序)。下面是一篇很好的文章,介绍如何配置vs symbol server和dotpeek 1.2以调试VisualStudio中的反编译代码: http://blog.jetbrains.com/dotnet/2014/04/09/introducing-dotpeek-1-2-early-access-program |
|
|
Guilherme Albertini · DLL中的类 8 年前 |
|
|
Naomi · C#dll资源文件更改语言 8 年前 |
|
|
AidanH · C#DLL语言翻译实现[关闭] 8 年前 |
|
|
subham · DLL函数调用不工作 8 年前 |
|
|
PixelThis · 为什么我的DLL要求我的程序有一个特定的名称? 8 年前 |
|
|
nemo · DLL的“好”调用约定是什么? 8 年前 |