Compartir a través de


.step_filter (Establecer filtro de pasos)

El comando .step_filter crea una lista de funciones omitidas (escalonadas) al realizar el seguimiento. Esto le permite realizar un seguimiento del código y omitir solo determinadas funciones. También se puede usar en modo de código fuente para controlar la ejecución paso a paso cuando hay varias llamadas de función en una línea.

.step_filter "FilterList" 
.step_filter /c 
.step_filter 

Parámetros

"FilterList"
Especifica los símbolos asociados a las funciones que se van a pasar por alto. FilterList puede contener cualquier número de patrones de texto separados por punto y coma. Cada uno de estos patrones puede contener una variedad de caracteres comodín y especificadores; Consulte Sintaxis de caracteres comodín de cadena para obtener más información. Una función cuyo símbolo coincida con al menos uno de estos patrones se superará durante el seguimiento. Cada vez que se usa "FilterList", se descarta cualquier lista de filtros anterior y se reemplaza completamente por la nueva lista.

/C
Borra la lista de filtros.

Entorno

Elemento Descripción
Modos Modo de usuario, modo kernel
Targets Volcado de memoria activo y de memoria
Plataformas Todo

Comentarios

Sin ningún parámetro, .step_filter muestra la lista de filtros actual.

Normalmente, un comando de seguimiento (por ejemplo, t o el depurador de windbg | depurar paso a paso por instrucciones] realiza un seguimiento en una llamada de función. Sin embargo, si el símbolo asociado a la función a la que se llama coincide con un patrón especificado por FilterList, la función se pasará por alto, como si se hubiera usado un comando de paso (por ejemplo, p).

Si el puntero de instrucción se encuentra dentro del código que aparece en la lista de filtros, los comandos de seguimiento o paso sacarán paso a paso de esta función, como el comando gu o el botón Salir de WinDbg. Por supuesto, este filtro impediría que este código se hubiera rastreado en primer lugar, por lo que esto solo ocurrirá si ha cambiado el filtro o ha alcanzado un punto de interrupción.

Por ejemplo, el siguiente comando hará que los comandos de seguimiento omitan todas las llamadas de CRT:

.step_filter "msvcrt!*" 

El comando .step_filter es más útil al depurar en modo de origen, ya que puede haber varias llamadas de función en una sola línea de origen. Los comandos p y t no se pueden usar para separar estas llamadas de función.

Por ejemplo, en la línea siguiente, el comando t depurará paso a paso por instrucciones GetTickCount e printf, mientras que el comando p recorrerá paso a paso las dos llamadas de función:

printf( "%x\n", GetTickCount() );

El comando .step_filter permite filtrar una de estas llamadas mientras sigue realizando un seguimiento en la otra.

Dado que las funciones se identifican por símbolo, un único filtro puede incluir un módulo completo. Esto le permite filtrar las funciones del marco, por ejemplo, llamadas a Microsoft Foundation Classes (MFC) o Active Template Library (ATL).

Al depurar en modo de ensamblado, cada llamada está en una línea diferente, por lo que puede elegir si desea realizar un seguimiento de línea a línea o paso a paso. Por lo tanto , .step_filter no es muy útil en el modo de ensamblado.