!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