Alter.Org.UA
 << Back Home EN en   Donate Donate

DbgPrint logger

DbgPrint logger home

Command line reference (legacy, v0.5)

Параметры командной строки для DbgPrintLog:

Usage:
    DbgPrintLog.exe [<switches>] [<log-file name>]
Switches:
    Log-file format:
        -m       write initiator mode (K - kernel, U - user) to log
        -p       write ProcessId to log
        -t       write ThreadId to log (for kernel-mode only)
        -i       write IRQL to log (for kernel-mode only)
        -cpu     write CPU num to log (for kernel-mode only)
        --full   same as -m -p -t -i
        -T FMT   specify absolute time format FMT. FMT string can contain
                 the following switches: D - date, T - time, N - high precision time
                 R - relative time (tick count), U - UTC time
        -fm M    do not log messages from <M> mode
                 <M> can be K - kernel or U - user
    Log-file control:
        -s NUM   set max log-file size to NUM Mbytes (0 < NUM < 2048)
                 128Mb is used by default
        -S NUM   does like -s, but sets initial file size to specified value.
                 Is intended mainly for use by GUI tool.
        -x NUM   create index file for each log file.
                 Is intended mainly for use by GUI tool.
        -l NUM   keep NUM latest log files
        -n NUM   set start log number to NUM
        -ft NUM  flush messages buffer after NUM seconds of inactivity
        -sm      synchronous mode. all messages are flushed immediately
        -cf      copy log to both STDOUT and file
        -wd DIR  specify working directory
    Output data stream control:
        -o
           or
        --stdout write log to STDOUT instead of file
        --no_out do not write logs anyware
                 just forward OutputDebugString to driver
    Input data stream control:
        --stdin  read message stream from STDIN
        --in_file FILENAME
                 read message stream from FILENAME
        --in_drv read message stream from the driver (default)
        --no_drv do not use driver for message routing
    Run mode:
        -svc MOD install or uninstall as service. MOD specify startup mode:
                 A - automatic, M - manual, U - uninstall. 'A' is used by default
                 if MOD is omited.
        -drv MOD Specify driver startup mode:
                 1 - very first (boot), B - boot, S - system,
                 A - automatic, M - manual, U - uninstall
                 'M' is used by default if MOD is omited.
        --drvopt OPTION_NAME VALUE
                 Specify driver startup option. Valid OPTION_NAMEs are
                     CheckIrql, BufferSize, DoNotPassMessagesDown,
                     StopOnBufferOverflow, TimeStampType
                 Read documentation for each option description
        -rd      restart and reinstall driver before start
        -h       display this help message

Console commands reference

Если DbgPrintLog запущен как консольное приложение, доступны следующие клавиши управления:

Commands:
    'Esc'   - exit
    'N'     - start new log
    'F'     - flush log buffer
    'H'     - display this help message

Mode switchers (toggle on/off):
    'Space' - pause
    'S'     - synchronous mode
    'C'     - copy log to stdout
    'K'     - capture kernel messages
    'U'     - capture user-mode messages

Examples

Logging Boot-driver

Для получения логов начальной загрузки, например - инициализации драйверов SCSI/IDE контроллеров, имеет смысл установить DbgPrintLog с такими параметрами:

DbgPrintLog.exe -full -T DTN -wd X:\dir_for_logs -drv 1 -svc A -drvopt DoNotPassMessagesDown 1
    -drvopt StopOnBufferOverflow 1 -drvopt BufferSize 16384 BootInit.log

В этом случае драйвер перехватит все обращения к DbgPrint() и сохранит сообщения во внутреннем буфере размером 16Mb. Когда буфер заполнится, поступающие сообщения будут выбрасываться. Это продолжится до тех пор, пока не запустится сервис. В этот момент сохраненные сообщения будут записаны в файл и сбор логов продолжится в нормальном режиме. Поскольку сообщения не будут передвваться в настоящую ф-цию DbgPrint(), можно безопасно генерировать логи даже на высоких IRQL.

Logging System-driver

Для получения логов во время загрузки system драйверов, например CDROM, имеет смысл установить DbgPrintLog с такими параметрами:

DbgPrintLog.exe -full -T DTN -wd X:\dir_for_logs -drv B -svc A 
    -drvopt StopOnBufferOverflow 1 -drvopt BufferSize 16384 SystemDrivers.log

Драйвер перехватит все обращения к DbgPrint() и сохранит сообщения во внутреннем буфере размером 16Mb. Когда буфер заполнится, поступающие сообщения будут выбрасываться. Это продолжится до тех пор, пока не запустится сервис. В этот момент сохраненные сообщения будут записаны в файл и сбор логов продолжится в нормальном режиме. Поскольку сообщения будут передвваться в настоящую ф-цию DbgPrint(), не стоит генерировать логи на высоких IRQL.

Logging Logon process

Для получения логов во время входа пользователя в систему, например из gina.dll, имеет смысл использовать функции вывода логов из DbgPrint logger SDK вместо стандартной ф-ций OutputDebugString(). Это связвно с тем, что для перехвата OutputDebugString() требуется наличие сервиса DbgPrintLog.exe, который может быть еще не запущен.

Установить DbgPrintLog нужно с такими параметрами:

DbgPrintLog.exe -p -t -T DT -wd X:\dir_for_logs -drv S -svc A Logon.log

Драйвер сохранит сообщения во внутреннем буфере размером 1Mb (по умолчанию). Когда буфер заполнится, наиболее старые сообщения будут выбрасываться. Это продолжится до тех пор, пока не запустится сервис. В этот момент сохраненные сообщения будут записаны в файл и сбор логов продолжится в нормальном режиме.

Logging on demand

Если требуется собрать во время исполнения тестируемого приложения, имеет смысл запускать DbgPrintLog с такими параметрами:

DbgPrintLog.exe -p -fm K -T DT -wd X:\dir_for_logs MyApp.log

User-mode часть утилиты перехватит сообщения идущие через OutputDebugString() и сохранит в файл. Сообщения от DbgPrint() сохранены не будут.

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

Deinstall

Для отключения автозапуска утилиты стоит воспользоваться следующей строчкой:

DbgPrintLog.exe -drv U -svc U

DbgPrintLog main page


Предложения и замечания слать на FB or mail alterX@alter.org.ua (remove X)   Share
Автор: Alter (Александр А. Телятников) Сервер: Apache+PHP под FBSD © 2002-2024