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


Обзор манифеста ведения журнала

Манифест ведения журнала — это группа файлов заголовков, определяющих функции и com-интерфейсы, которые перехватываются и регистрируются. Это не истинные файлы заголовков C++ — они находятся в немного другом формате, который явно объявляет сведения, необходимые для средства ведения журнала.

Например, формат манифеста упрощает следующие функции:

  • Назначение параметров OUT. Это параметры, которые должны быть записаны как на пути в функцию, так и на выходе.

  • Определение маски флагов. Эта функция позволяет LogViewer разбить флаг DWORD на составляющие битовые метки для упрощения чтения.

  • Определение случаев сбоя. Эта функция позволяет LogViewer оттенять строки функций, возвращающих код состояния сбоя или другой код ошибки. Кроме того, если функция задает значение LastError для потока, LogViewer может сохранить код ошибки и развернуть его до соответствующего сообщения об ошибке, доступном для чтения.

  • Назначение параметров, которые можно псевдонимировать для разных журналов. Эта функция позволяет LogViewer назначать константную строку значению, которое изменяется от выполнения к выполнению, например указателям и обрабатывает при экспорте данных в файл. Затем можно использовать разностное средство для сравнения двух журналов выполнения для несоответствий. Если указатели и дескрипторы не были псевдонимами, они будут создавать неинтересные несоответствия при сравнении двух файлов.