!for_each_frame

!for_each_frame 扩展对当前线程堆栈中的每个帧执行一次调试器命令。

!for_each_frame ["CommandString"] 
!for_each_frame -?

参数

CommandString
指定要为每个帧执行一次的调试器命令。 如果 CommandString 包含多个命令,则必须用分号 (;) 隔开,并将 CommandString 用引号 (") 括起来。 如果包含多个命令,CommandString 中的单个命令不能包含引号。 如果要引用 CommandString 中当前帧的索引,请使用 $@frame 伪寄存器。

-?
“调试器命令”窗口中显示此扩展的一些帮助文本。

DLL

Ext.dll

其他信息

有关本地上下文的详细信息,请参阅更改上下文

注解

如果未指定任何参数,!for_each_frame 扩展将显示所有帧及其帧索引的列表。 有关所有帧的更详细列表,请使用 k(显示堆栈回溯)命令。

k 命令最多遍历 256 帧。 对于每个枚举帧,该帧会暂时成为当前本地上下文(类似于 .frame(设置本地上下文)命令)。 设置上下文后,将执行 CommandString。 使用完所有帧后,本地上下文将重置为使用 !for_each_frame 扩展之前的值。

如果包含 CommandString,调试器会在执行该帧的命令前显示帧及其索引。

以下命令显示当前堆栈的所有局部变量。

!for_each_frame !for_each_local dt @#Local