Поделиться через


Сеанс трассировки

Сеанс трассировки — это период, в течение которого поставщик трассировки создает сообщения трассировки. Система поддерживает набор буферов для сеанса трассировки для хранения сообщений трассировки до их доставки ("очистки") в журнал трассировки или потребитель трассировки.

Существует три основных типа сеансов трассировки: сеансы журнала трассировки, сеансы трассировки в режиме реального времени и сеансы буферизованной трассировки. Один сеанс трассировки может быть сеансом журнала трассировки, сеансом трассировки в режиме реального времени или и тем, и другим. Сеансы трассировки в буфере являются эксклюзивными.

Кроме того, существуют частные сеансы трассировки и зарезервированные сеансы трассировки, такие как сеанс трассировки nt kernel Logger и глобальный сеанс трассировки средства ведения журнала, которые можно запускать как сеансы журнала, так и сеансы в режиме реального времени. Вы можете использовать стандартные средства для управления этими сеансами и отображения полученных сообщений трассировки.

Сеансы журнала трассировки

В сеансе журнала трассировки сообщения трассировки записываются из буферов трассировки в файл журнала в двоичном формате. Это стандартный тип сеанса трассировки по умолчанию.

Сеансы трассировки в реальном времени

В сеансе трассировки в режиме реального времени сообщения трассировки доставляются непосредственно потребителю трассировки, например TraceView или Tracefmt, а не в дополнение к отправке в файл журнала.

Буферизированные сеансы трассировки

В буферизованном сеансе трассировки сообщения трассировки остаются в буфере трассировки; Они не записываются в журнал трассировки и не доставляются потребителю трассировки. Буфер поддерживается как циклический файл. После заполнения последние сообщения трассировки перезаписывают самые старые сообщения трассировки в буфере.

Сеансы трассировки в буфере поддерживаются только в Windows Vista и более поздних версиях Windows.

Хотя программная трассировка, как правило, вызывает очень незначительные издержки, буферизированные сеансы трассировки имеют наименьшие издержки по сравнению со всеми типами сеансов трассировки. Вы можете выполнять трассировку в течение длительных периодов времени, а затем, если происходит что-то интересное, можно использовать отладчик для проверки текущего содержимого буфера или сохранить текущее содержимое буфера в журнале трассировки.

Чтобы просмотреть сообщения трассировки в буфере трассировки, используйте специализированное расширение отладчика !wmitrace . Сведения об этом расширении см. в разделе Средства отладки для Windows.

Чтобы очистить содержимое буфера в журнал трассировки, используйте параметр -f команды tracelog -flush .

Чтобы запустить сеанс трассировки в буфере, используйте параметр -buffering команды tracelog -start . Дополнительные сведения см. в разделе Синтаксис команды Tracelog.

Закрытые сеансы трассировки

Частный сеанс трассировки — это сеанс трассировки, который выполняется в пользовательском режиме как часть процесса трассировки в пользовательском режиме. (Стандартные сеансы трассировки выполняются в ядре.) Частные сеансы трассировки также называются сеансами трассировки в пользовательском режиме или сеансами трассировки процессов.

Одновременно можно запустить несколько частных сеансов трассировки, но в каждом процессе можно запустить только один частный сеанс трассировки.

Вы не можете выполнять трассировку частного сеанса трассировки в режиме реального времени. Сообщения трассировки должны быть записаны в журнал.

Буферы, используемые в закрытых сеансах трассировки, всегда доступны на страницы. Для этих буферов нельзя указать выгружаемую или невыгружаемую память.

Сообщения трассировки из закрытого сеанса трассировки нельзя отправлять отладчику. Расширение трассировки WMI (!wmitrace) не поддерживает частные сеансы трассировки.

Дополнительные сведения о сеансах трассировки частных событий см. в документации по Microsoft Windows SDK.