在Windbg中,我尝试使用~*e
在所有线程上运行一组命令,并且我希望第一个命令显示与~.
相同的详细信息
我尝试了~*e .echo DETAILS:; ~.
,但它给了我以下输出:
DETAILS:
Ignoring recursive thread command
DETAILS:
Ignoring recursive thread command
DETAILS:
...
是的,我已经了解~*
,但是我想显示每个线程的自定义信息,并且我需要在~*e
内使用它
答案 0 :(得分:2)
如果只是线程标识符,则使用@ $ thread伪寄存器代替〜。
0:035> ~*e .printf "DETAILS:%I64x\n" , @$thread
DETAILS:d54d765000
DETAILS:d54d767000
DETAILS:d54d769000
DETAILS:d54d76b000
或编写使用@ $ thread的脚本
0:035>
~*e .printf "%-4x:%-4x TEB:%I64x\n" , @@c++(@$thread->ClientId.UniqueProcess), @@c++(@$thread->ClientId.UniqueThread),@@c++(@$thread->NtTib.Self)
eec :18f8 TEB:d54d765000
eec :f98 TEB:d54d767000
eec :25c4 TEB:d54d769000
eec :2f10 TEB:d54d76b000
eec :1edc TEB:d54d76d000
eec :26a4 TEB:d54d771000
eec :1934 TEB:d54d773000
eec :26fc TEB:d54d775000
eec :2dcc TEB:d54d777000
eec :c50 TEB:d54d779000
eec :5b4 TEB:d54d77d000