我有一个 .NET 应用程序的转储,它创建并加载了太多动态程序集。我想检查其中一个程序集里面有什么。
为此,我想将这样的程序集转储到文件中并在 Reflector 中打开它。
问题 - 我不知道该怎么做。
所以,我的问题是——给定一个完整的内存转储,我如何将任意程序集转储到文件中,以使新文件是有效的 .NET 模块或程序集本身?
一个更简单的变体 - 我如何从实时调试会话中做到这一点?
我正在使用带有 SOS 和 SOSEX 的 WinDBG。
编辑 1
所以,3年后我再次需要它。以下是来自的相关输出!DumpDomain
:
Assembly: 007f89a0 (Dynamic) []
ClassLoader: 00877998
SecurityDescriptor: 00879410
Module Name
054d0010 Dynamic Module
从这些信息开始,我怎样才能找到这个程序集的开始和结束?然后我可以使用.writemem
命令。