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
Предложения и замечания слать на
alterX@alter.org.ua (remove X)
|