!for_each_frame
La extensión !for_each_frame ejecuta un comando del depurador una vez para cada marco de la pila del subproceso actual.
!for_each_frame ["CommandString"]
!for_each_frame -?
Parámetros
CommandString
Especifica los comandos del depurador que se van a ejecutar una vez para cada marco. Si CommandString incluye varios comandos, debe separarlos con punto y coma y escribir CommandString entre comillas. Si incluye varios comandos, los comandos individuales de CommandString no pueden contener comillas. Si desea hacer referencia al índice del marco actual en CommandString, use el pseudoregistro @$frame.
-?
Muestra un texto de ayuda para esta extensión en la ventana Comando del depurador.
Archivo DLL
Ext.dll
Información adicional
Para obtener más información sobre el contexto local, consulte Cambio de contextos.
Comentarios
Si no especifica ningún argumento, la extensión !for_each_frame muestra una lista de todos los marcos y sus índices de marcos. Para obtener una lista más detallada de todos los marcos, use el comando k (Display Stack Backtrace).
El comando k recorre hasta 256 marcos. Para cada marco enumerado, ese marco se convierte temporalmente en el contexto local actual (similar al comando .frame (Set Local Context). Una vez definido el contexto, se ejecuta CommandString . Después de usar todos los marcos, el contexto local se restablece al valor que tenía antes de usar la extensión !for_each_frame .
Si incluye CommandString, el depurador muestra el marco y su índice antes de ejecutar el comando para ese marco.
El siguiente comando muestra todas las variables locales de la pila actual.
!for_each_frame !for_each_local dt @#Local