目录
9. !locks(!ntsdexts.locks)(显示临界区列表)
本参考文档的这一部分介绍了主要用于用户模式调试的扩展命令。
调试器会自动加载这些扩展命令的正确版本。除非您手动加载了不同的版本,否则无需跟踪正在使用的 DLL 版本。有关默认模块搜索顺序的说明,请参阅“使用调试器扩展命令”。
每一个扩展命令参考页面都列出了公开该命令的 DLL。请使用以下规则确定要从中加载此扩展 DLL 的正确目录:
如果目标应用程序运行在 Windows XP 或更高版本的 Windows 上,请使用 winxp\Ntsdexts.dll。
此外,不特定于任何单个操作系统的用户模式扩展位于 winext\Uext.dll 中。
更详细参数见:
https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/user-mode-extensions
1. !avrf (控制应用程序验证器设置及设置输出)
!avrf 控制应用程序验证器的设置,并显示应用程序验证器生成的各种输出。
!avrf
!avrf -vs { Length | -a Address }
!avrf -hp { Length | -a Address }
!avrf -cs { Length | -a Address }
!avrf -dlls [ Length ]
!avrf -trm
!avrf -ex [ Length ]
!avrf -threads [ ThreadID ]
!avrf -tp [ ThreadID ]
!avrf -srw [ Address | Address Length ] [ -stats ]
!avrf -leak [ -m ModuleName] [ -r ResourceType] [ -a Address ] [ -t ]
!avrf -trace TraceIndex
!avrf -cnt
!avrf -brk [BreakEventType]
!avrf -flt [EventType Probability]
!avrf -flt break EventType
!avrf -flt stacks Length
!avrf -trg [ Start End | dll Module | all ]
!avrf -settings
!avrf -skp [ Start End | dll Module | all | Time ]
DLL:
exts.dll
2. !critsec (显示临界区)
!critsec 显示临界区。
!critsec Address
DLL:
Ntsdexts.dll
3. !dp (!ntsdexts.dp)(显示临界区)
Ntsdexts.dll 中的 !dp 扩展命令用于显示 CSR 进程。请勿将此扩展命令与 dp(显示内存)命令或 !kdext*.dp 扩展命令混淆。
!dp [v] [ PID | CSR-Process ]
DLL:
Ntsdexts.dll
4. !dreg (显示注册表信息)
!dreg显示注册表信息。
!dreg [-d|-w] KeyPath[!Value]
!dreg
DLL:
Ntsdexts.dll
5. !dt (显示 CSR 线程详情)
!dt 扩展命令用于显示 CSR (Certificate Signing Request)线程的相关信息。
请勿将此扩展命令与 dt(显示类型)命令混淆。
!dt [v] CSR-Thread
DLL:
Ntsdexts.dll
6. !findstack (寻栈)
!findstack 可以找到所有包含指定符号或模块的栈。
!findstack Symbol [DisplayLevel]
!findstack -?
DLL:
Uext.dll
7. !gatom (显示全局原子表)
!gatom 显示全局原子表。
DLL:
Ntsdexts.dll
8. !igrep (在反汇编码中搜索模式)
!igrep用于在反汇编代码中搜索模式(pattern)。
!igrep [Pattern [StartAddress]]
DLL:
Windows 2000:Ntsdexts.dll
Windows XP and later:Unavailable
9. !locks(!ntsdexts.locks)(显示临界区列表)
Ntsdexts.dll 中的 !locks会显示与当前进程关联的临界区列表。
请勿将此扩展命令与 !kdext*.locks 扩展命令混淆(不同的扩展DLL中出现相同的扩展命令)。
DLL:
Ntsdexts.dll
10. !mapped_file (显示文件映像)
!mapped_file 显示支持包含指定地址的文件映射的文件名。
!mapped_file Address
DLL:
Uext.dll
!mapped_file 只能在实时、非远程调试期间使用。
11. !runaway (显示线程耗时详情)
!runaway 会显示每一个线程所消耗的时间信息。
!runaway [Flags]
例如:
0:000> !runaway
User Mode Time
Thread Time
3:4b2c 0 days 0:00:00.000
2:c9c 0 days 0:00:00.000
1:42c0 0 days 0:00:00.000
0:4f0c 0 days 0:00:00.000
0:000> !runaway
User Mode Time
Thread Time
0:3238 0 days 0:00:01.015
DLL:
Ntsdexts.dll
12. !uniqstack(显示线程栈详情)
!uniqstack显示当前进程中所有线程的所有栈,但排除出现重复堆栈的情况。
!uniqstack [ -b | -v | -p ] [ -n ]
DLL:
Uext.dll
例如:
Processing 1 threads, please wait
. 0 Id: 51b0.3238 Suspend: 0 Teb: 000000b6`01193000 Unfrozen
Start: TestVC__!ILT+23800(wmainCRTStartup) (00007ff7`b44a6cfd)
Priority: 0 Priority class: 32 Affinity: ff
# Child-SP RetAddr Call Site
00 000000b6`012ff8a8 00007ffd`ed641168 ntdll!NtTerminateProcess+0x14
01 000000b6`012ff8b0 00007ffd`ec737fab ntdll!RtlExitUserProcess+0xb8
02 000000b6`012ff8e0 00007ff7`b462f65b KERNEL32!ExitProcessImplementation+0xb
03 000000b6`012ff910 00007ff7`b462f5ec TestVC__!exit_or_terminate_process+0x3b [minkernel\crts\ucrt\src\appcrt\startup\exit.cpp @ 142]
04 000000b6`012ff940 00007ff7`b462fa06 TestVC__!common_exit+0xac [minkernel\crts\ucrt\src\appcrt\startup\exit.cpp @ 288]
05 000000b6`012ff9a0 00007ff7`b44d8fab TestVC__!exit+0x16 [minkernel\crts\ucrt\src\appcrt\startup\exit.cpp @ 302]
06 000000b6`012ff9d0 00007ff7`b44d8e4e TestVC__!__scrt_common_main_seh+0x14b [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 295]
07 000000b6`012ffa40 00007ff7`b44d917e TestVC__!__scrt_common_main+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331]
08 000000b6`012ffa70 00007ffd`ec73257d TestVC__!wmainCRTStartup+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_wmain.cpp @ 17]
09 000000b6`012ffaa0 00007ffd`ed64af08 KERNEL32!BaseThreadInitThunk+0x1d
0a 000000b6`012ffad0 00000000`00000000 ntdll!RtlUserThreadStart+0x28
Total threads: 1
13. !vadump(显示虚拟内存范围及相应保护信息)
!vadump 显示所有虚拟内存范围及其相应的保护信息。
!vadump [-v]
DLL:
Uext.dll
14. !vprot(显示虚拟内存保护信息)
!vprot显示虚拟内存保护信息。
!vprot [Address]
DLL:
Uext.dll

640

被折叠的 条评论
为什么被折叠?



