Windbg:加载程序集的版本
如果我有完整的内存转储,有人知道如何找出加载的程序集的程序集版本(而不是文件版本)吗? 假设我有 .net 进程的完整转储,并且发现一个 AppDomain 中加载了两个同名的程序集。我需要知道这些程序集有哪些版本。 SOS 命令 !dumpmodule、!dumpassemble 和 !dumpdomain 不提供此类信息,或者我只是错过了一些信息。
先感谢您。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试
!SaveModule
SOS 命令。这将获取程序集的起始地址并创建一个新文件(其名称由您指定)来保存程序集的内容。然后,您可以使用 .NET Refletor 之类的工具打开该文件,它可能会在其中的某个位置为您提供 .NET 版本。这个问题有一些细节:如何找出可执行文件需要运行哪个版本的 .NET Framework?
至于 !SaveModule 命令,这里有一篇博客文章介绍了如何使用它:
http://blogs.msdn.com/b/苔丝/archive/2006/05/18/601002.aspx?PageIndex=2
You could try the
!SaveModule
SOS command. This takes the start address of an assembly and creates a new file (the name of which is given by you) to save the contents of the assembly. You could then use something like .NET Refletor to open the file, and it might give you the .NET version somewhere in there. This SO question has some details on that:How to find out which version of the .NET Framework an executable needs to run?
As for the !SaveModule command, here's a blog article that describes how to use it:
http://blogs.msdn.com/b/tess/archive/2006/05/18/601002.aspx?PageIndex=2