是否可以使用SOS调试扩展输出类型的IFaceMap? DumpMT
命令仅提供类型实现的接口数,但它不提供任何命令来自己输出IFacemap条目
!DumpMT -MD 007938ec
EEClass: 00791310
Module: 00792e94
Name: DebugTest.Customer
mdToken: 02000004
BaseSize: 0x10
ComponentSize: 0x0
Slots in VTable: 10
Number of IFaces in IFaceMap: 1
!DumpHeap
也不输出接口。
答案 0 :(得分:1)
我从未在SOS或SOSEX中遇到过这样的功能。我看到的最接近的命令来自NetExt (Codeplex)。 NetExt是开源的,所以如果你想查看内部,你可以阅读源代码,看看它是如何找到接口信息的。
一个命令是!windex -implement <InterfaceName>
。但是,这也没有列出所有类型的接口,而是相反:所有实现接口的类型。这听起来对你的案子很有意思。
另一个是!wclass <MethodTable>
,其输出类似于.NET反编译代码。在类定义级别,您可以看到已实现的接口(摘自NetExt文档):
0:00> !wclass 00000001045f0c68
...
namespace System.Web.Configuration {
internal class HttpConfigurationSystem: System.Configuration.Internal.IInternalConfigSystem
{
...