Windbg:如何在线程执行命令中显示线程详细信息?

时间:2020-05-29 19:52:02

标签: windbg

在Windbg中,我尝试使用~*e在所有线程上运行一组命令,并且我希望第一个命令显示与~.相同的详细信息

我尝试了~*e .echo DETAILS:; ~.,但它给了我以下输出:

DETAILS:
Ignoring recursive thread command
DETAILS:
Ignoring recursive thread command
DETAILS:
...

是的,我已经了解~*,但是我想显示每个线程的自定义信息,并且我需要在~*e内使用它

1 个答案:

答案 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