Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Команда .step_filter создает список функций, пропущенных (перешагнутых) при трассировке. Это позволяет отслеживать код и пропускать только определенные функции. Его также можно использовать в исходном режиме для управления шагами при наличии нескольких вызовов функций в одной строке.
.step_filter "FilterList"
.step_filter /c
.step_filter
Параметры
FilterList
Указывает символы, связанные с функциями, которые необходимо выполнить. FilterList может содержать любое количество текстовых шаблонов, разделенных точкой с запятой. Каждый из этих шаблонов может содержать различные подстановочные знаки и описатели; Дополнительные сведения см. в синтаксисе подстановочных знаков строки. Функция, символ которой соответствует хотя бы одному из этих шаблонов, будет перешагон во время трассировки. Каждый раз при использовании FilterList все предыдущие списки фильтров удаляются и полностью заменяются новым списком.
/c
Очищает список фильтров.
Среда
| Позиция | Description |
|---|---|
| Режимы | Режим пользователя, режим ядра |
| Целевые объекты | Динамический, аварийный дампа |
| Платформы | Все |
Замечания
Без параметров .step_filter отображает текущий список фильтров.
Как правило, команда трассировки (например, t или отладка windbg | шаг в] трассировки в вызов функции. Однако если символ, связанный с вызываемой функцией, соответствует шаблону, указанному FilterList, функция будет перемещена, как если бы использовалась команда шага (например, p).
Если указатель инструкции находится в коде, указанном в списке фильтров, любые команды трассировки или шага будут выходить из этой функции, например команду gu или кнопку "Шаг выхода WinDbg". Конечно, этот фильтр предотвратит трассировку такого кода в первую очередь, поэтому это произойдет только в том случае, если вы изменили фильтр или попали в точку останова.
Например, следующая команда приведет к пропуску команд трассировки во всех вызовах CRT:
.step_filter "msvcrt!*"
Команда .step_filter наиболее полезна при отладке в исходном режиме, так как в одной исходной строке может быть несколько вызовов функций. Команды p и t нельзя использовать для разделения этих вызовов функций.
Например, в следующей строке команда t будет выполняться как в GetTickCount, так и в printf, а команда p будет выполнять оба вызова функции:
printf( "%x\n", GetTickCount() );
Команда .step_filter позволяет отфильтровать один из этих вызовов при трассировке в другую.
Так как функции идентифицируются по символам, один фильтр может включать весь модуль. Это позволяет отфильтровать функции платформы, например вызовы Microsoft Foundation Classes (MFC) или Active Template Library (ATL).
При отладке в режиме сборки каждый вызов находится в другой строке, поэтому можно выбрать, следует ли выполнять пошаговые или трассировки по строкам. Поэтому .step_filter не очень полезно в режиме сборки.