DbgPrint logger for NT3.51/NT4/NT4-TS/w2k/XP/2k3/2k3-r2/Vista and WinPE/BartPE/MobileOS
DbgPrint logger home
DbgPrint logger Registry settings
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrintLog]
REG_SZ:CmdLine
Параметры камандной строки для запуска DbgPrintLog.exe как сервиса. Допускаются
любые параметры, описаные здесь, кроме -svc и -drv.
Для совместимости первый элемент строки параметров должен содержать имя исполняемого файла.
Данное значение является обязательным при работе в режиме сервиса.
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrintLog]
REG_SZ:WorkingDirectory
Имя каталога, в котором будут сохраняться логи.
Данное значение является обязательным при работе в режиме сервиса.
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:BufferSize
Настройка размера буфера сообщений в Kb. Размер
автоматически выравнивается на степень двойки.
По умолчанию - 1Mb (1024 Kb).
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:CheckIrql
Перехват debug-messages на Irql > DISPATCH_LEVEL.
В NT4 это не очень актуально. Хотя документация запрещает использование
DbgPrint() на высоком Irql, мой UniATA драйвер
пользовался этой функцией вполне
успешно. А вот в w2k и старше пошли глюки - действительно нельзя. При установке этого значения
в DWORD:0x00000001 драйвер
будет и дальше отлавливать debug-messages, но не будет передавать управление в настоящую
DbgPrint() при Irql > DISPATCH_LEVEL. Значение DWORD:0x00000000 отключает проверку (значение по умолчанию).
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:DoNotPassMessagesDown
Возможность блокировки передачи debug-messages в DebugPrint(). При установке этого значения
в DWORD:0x00000001 драйвер
будет и дальше отлавливать debug-messages, но не будет передавать управление в настоящую
DbgPrint() ни при каких условиях. Значение DWORD:0x00000000 отключает блокировку (значение по умолчанию).
Очень нужная опция при отладке по шнурку (COM, IEE1394, USB2.0). Поток сообщений не будет тормозить систему,
в тоже время собраные логи можно в любой момент забрать с отлаживаемой машины при помощи
Kernel Debugger extension'а.
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:StopOnBufferOverflow
Возможность управления приоритетом старых/новых debug-messages при заполнении буфера. При установке этого значения
в DWORD:0x00000001 драйвер
будет игнорировать поступающие debug-messages при заполнении буфара.
Значение DWORD:0x00000000 означает, что старые debug-messages будут удаляться из буфера
и замещаться новыми (значение по умолчанию).
Начиная с версии 0.6d появилась возможность вызвать отладчик при заполнении буфера.
Система остановится на инструкции int 3 и можно будет просмотреть или
сохранить накопленые сообщения при помощи Kernel Debugger extension'а
командами !dbgprn.ls или !dbgprn.save соответственно.
Включается значением DWORD:0x00000002.
Внимание ! Не используете эту опцию если система
не подключена к MS Kernel Debugger, SoftIce или другому отладчику режима ядра -
получите синий экран.
Эта опция полезна в сочетании с DoNotPassMessagesDown=2.
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:TimeStampType
Возможность управления способом определения времени поступления debug-messages.
Значени DWORD:0x00000000 (по умолчанию) указывает на использование KeQueryPerformanceCounter().
Эта ф-ция присутствует во всех ОС семейства NT, но довольно ресурсоемка и
ее частое применение иногда плохо сказывается на работоспобности boot-драйверов
(замечено на UniATA).
Значение DWORD:0x00000001 приводит к использованию инструкции RDTSC. Способ замечательный
во всех отношениях кроме того, что команда RDTSC появилась только в поколении
Intel Pentium'ов и AMD-k5.
Значение DWORD:0x00000002 - использовать обычную ф-цию KeQuerySystemTime(), которая точностью
измерения времени совсем не блещет.
Появилось в версии
DbgPrint 0.4c
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:AggregateMessages
Возможность склеивания (агрегации) нескольких коротких следующих друг за друго debug-messages
от одного thread'а в один debug-message. При установке этого значения
в DWORD:0x00000001 драйвер
будет пытаться агрегировать сообщения. В этом режиме более экономно заполняется внутренний буфер
сообщений, но немного страдает точность измерения времени.
Значение DWORD:0x00000000 означает, что все debug-messages будут сохраняться в буфере
независимо (значение по умолчанию).
[HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]
DWORD:DumpStackFramePtr
Возможность добавления к отладочным сообщениям текущего значения указателя стека.
По умолчанию принято значение DWORD:0x00000000 - не добавлять значение указателя стека.
Появилось в версии
DbgPrint 0.7
|