SOS Command: !Name2EE <module name> <type or method name>
This function allows you to turn a class name into a MethodTable and EEClass. It turns a method name into a MethodDesc. Here is an example for a method:
0:000> !name2ee unittest.exe MainClass.Main Module: 001caa38 Token: 0x0600000d MethodDesc: 00902f40 Name: MainClass.Main() JITTED Code Address: 03ef00b8
and for a class:
0:000> !name2ee unittest!MainClass Module: 001caa38 Token: 0x02000005 MethodTable: 009032d8 EEClass: 03ee1424 Name: MainClass
The module you are “browsing” with Name2EE needs to be loaded in the process. To get a type name exactly right, first browse the module with ILDASM. You can also pass * as the <module name> to search all loaded managed modules. <module name> can also be the debugger’s name for a module, such as mscorlib or image00400000.
The Windows Debugger syntax of <module>!<type> is also supported. You can use an asterisk on the left of the !, but the type on the right side needs to be fully qualified.
If you are looking for a way to display a static field of a class (and you don’t have an instance of the class, so !dumpobj won’t help you), note that once you have the EEClass, you can run !DumpClass, which will display the value of all static fields.
There is yet one more way to specify a module name. In the case of modules loaded from an assembly store (such as a SQL db) rather than disk, the module name will look like this: price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null For this kind of module, simply use price as the module name:
0:044> !name2ee price Price Module: 10f028b0 (price, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null) Token: 0x02000002 MethodTable: 11a47ae0 EEClass: 11a538c8 Name: Price
Where are we getting these module names from? Run !DumpDomain to see a list of all loaded modules in all domains. And remember that you can browse all the types in a module with !DumpModule -mt <module pointer>. Note: Above information is compiled based on the SOS help.