命令 |
描述 |
!bhi |
!bhi [filename]
BuildHeapIndex 用于对 GC
堆内的对象构建一个索引文件。
这将使 !gcroot 和 !refs
命令工作的更加快速。
索引内容将被存储到给定的文件名的文件中。
如果未指定文件名,则默认的文件名为 %dumppath%\%dumpname%_heapindex.bin
。 |
!chi |
!chi ClearHeapIndex
释放堆索引使用的所有资源,并从内存中移除。 |
!dlk |
!dlk [-d] 检测 SynczBlock
死锁。
-d
同时也检测 ReaderWriterLock 或 ReaderWriterLockSlim 的衍生类。 |
!dumpfd |
!dumpfd <FieldAddr>
显示 FieldDef 结构的属性值。 |
!dumpgen |
!dumpgen <intGenNum> [-free]
[-stat] [-type <TYPE_NAME>] [-nostrings]
以如下格式显示指定代的内容:
hexAddr decSize strTypeName
-nostrings
不显示对象名称或字符串数据。
-free
仅包括 FREE 的对象类型。
-stat
仅显示一个综合的统计。
-type
仅包含类型名称字符串中包含给定子字符串的对象数据。
|
!finq |
!finq [GenNum] [-stat]
显示终结化队列中的对象,并根据代来分类。
GenNum
给定的代(generation)。
-stat
显示统计信息。
|
!frq |
!frq [-stat] 显示可达队列(Freachable
Queue)中的对象。
|
!gcgen |
!gcgen <hexObjectAddr>
获取给定对象在 GC Heap 中的代数。如果对象在 LOH 中,则会提示 “Large Object
Heap”。 |
!gch |
!gch [-HandleType] [-stat] 列出所有
GCHandle 实例。
-HandleType 指定句柄的类型。!gch -Pinned -Strong
-stat
根据句柄类型进行统计。
有效的类型有:
- WeakShort
- WeakLong
- Strong
- Pinned
- Variable
- RefCounted
- AsyncPinned
|
!lhi |
!lhi [filename]
LoadHeapIndex 从给定的文件中加载堆索引。
如果未指定文件名称,则默认的文件名称为 %dumppath%\%dumpname%_heapindex.bin。 |
!mbc |
!mbc <Managed Breakpoint ID | *>
移除指定 ID 的断点。*
为移除全部。 |
!mbd |
!mbd <Managed Breakpoint
ID | *> 使失效,但不移除断点。 |
!mbe |
!mbe <Managed Breakpoint ID |
*> 使断点生效。 |
!mbl |
!mbl <Managed Breakpoint
ID> 显示给定 ID
的断点,或列出所有托管断点及其状态。 |
!mbm |
!mbm <method filter> [ILOffset]
[Options] 在指定的方法及偏移处设置断点。 |
!mdso |
!mdso [Options]
显示在当前上下文中,对象在栈上和 CPU 寄存器中的引用。
/a
显示栈上所有对象的引用。
/r
仅显示寄存器中的对象。
/c:n
限定显示的对象的数量为 n。
/t:typeFilter
限制显示的对象的类型。
/mt:MT
限制显示的对象为指定的方法表。 |
!mdt |
!mdt [typename | paramname | localname |
MT] [ADDR] [-r[:level]] [-e[:level]] [-start:index] [-count:n]
显示指定对象或类型的字段信息。
-r 递归显示字段信息。
-e 指定的类型将被扩展。
|
!mdv |
!mdv [nFrameNum]
显示当前帧中的参数或局部变量的信息。帧来自 !mframe 命令。
|
!mfrag |
!mfrag [-stat] [-mt:<MT>]
输出空闲的块报告。
-stat
显示统计报告
-mt:MT 仅显示碎片信息 |
!mframe |
!mframe [frame number] 为
!mdt 或 !mdv 命令设置当前的托管帧。 |
!mgu |
!mgu
返回在当前调用栈中最后一个托管调用者的当前位置。 |
!mk |
!mk [-l] [-p] [-a] [-c] [-cc]
显示调用栈中托管和非托管帧的组合。
-l 显示局部变量
-p 显示参数
-a 显示局部变量和参数(Locals +
Parameters)
-c 清理
-cc 清理,同时也拆解名空间。
|
!mln |
!mln [address expression]
显示给定地址处的 CLR 数据类型。
|
!mlocks |
!mlocks [-d] 显示线程中所有的托管锁对象和
CriticalSections 对象。
-d 同样搜索 ReaderWriterLock 或
ReaderWriterLockSlim 的衍生类。 |
!mroot |
!mroot
<ObjectAddr> [-all] 显示指定对象的 GC 根。
通常情况,仅显示第一个 Root
路径。
-all
显示所有的路径,这可能会耗费较长的时间。 |
!mt |
!mt 步进至当前位置的托管方法。 |
!mu |
!mu [address] [-s] [-il] [-n]
显示托管和非托管反汇编的交叉信息。
-s 显示源代码,如果可用。
-il 显示 IL 反汇编程序。
-n 显示原生的反汇编程序。
默认情况为 IL 和 Native 均显示。
|
!muf |
!muf [MD Address | CodeAddress]
[-s] [-il] [-n] 根据给定的 MD 信息进行反汇编,并显示交叉信息。
-s 显示源代码,如果可用。
-il 显示 IL 反汇编程序。
-n 显示原生的反汇编程序。
默认情况为 IL 和 Native 均显示。
|
!mwaits |
!mwaits [-d | LockAddr]
显示所有正在等待的线程。如果可知的话,同时显示正在等待的锁的信息。
-d
同样搜索 ReaderWriterLock 或 ReaderWriterLockSlim 的衍生类。
LockAddr 列出所有等待该地址锁的线程。
-d 和 LockAddr 选项是互斥的。 |
!mx |
!mx <Filter String>
显示任意匹配的类型、方法、字段等。 |
!rcw |
!rcw [Object or SyncBlock Addr] 显示
RuntimeCallableWrapper 数据。 |
!refs |
!refs <hexObjectAddr>
[-target|-source] 列出指定对象的所有的引用。
-source
仅显示指定对象所持有的引用。
-target
仅显示持有指定对象的引用。
格式化的输出采用如下格式:
hexAddr decSize strTypeName
|
!rwlock |
!rwlock [ObjectAddr | -d]
显示所有的 RWLock。如果给定 RWLock 地址,则显示该锁的详细信息。
-d
同样搜索 ReaderWriterLock 或 ReaderWriterLockSlim
的衍生类。
|
!strings |
!strings [ModuleAddress] [Options]
在托管堆或指定的模块中搜索匹配的字符串信息。
可选项:
g:<min gen>
列出指定 GC 代数中的字符串。有效的参数为 0、1、2 和 3(LOH)。
m:<match filter>
显示指定匹配规则的字符串。
n:<min length>
显示字符串的长度的最小值。
x:<max length>
显示字符串的长度的最大值。
|