 |
DbgPrint logger for NT3.51/NT4/NT4-TS/w2k/XP/2k3/2k3-r2/Vista and WinPE/BartPE/MobileOS
DbgPrint logger home
History
DbgPrnHk_v9a.rar/tgz (94.9 Kb/116.3 Kb) - archive with all necessary files,
DbgPrnHk_v9a_src.rar/tgz (140.9 Kb/170.3 Kb) - sources,
DbgPrnHk_v9a_sdk.rar/tgz (102.1 Kb/142.2 Kb) - SDK,
DbgPrnHk_v9a_all.rar/tgz (325.4 Kb/428.6 Kb) - all together
Добавлена экспериментальная возможность обработки INT 3 при работе через COM-порт по протоколу WinDbg.
2011.03.21
DbgPrnHk_v9.rar/tgz (94.6 Kb/116 Kb) - archive with all necessary files,
DbgPrnHk_v9_src.rar/tgz (140.6 Kb/170 Kb) - sources,
DbgPrnHk_v9_sdk.rar/tgz (102.1 Kb/142.2 Kb) - SDK,
DbgPrnHk_v9_all.rar/tgz (325 Kb/428.1 Kb) - all together
Добавлена возможность принимать логи по протоколу
syslog (RFC-3164). Включается ключем
--in:syslog HOST[:PORT].
2010.11.27
DbgPrnHk_v8i.rar/tgz (93.8 Kb/115.1 Kb) - archive with all necessary files,
DbgPrnHk_v8i_src.rar/tgz (139 Kb/168.4 Kb) - sources,
DbgPrnHk_v8i_sdk.rar/tgz (102.2 Kb/142.3 Kb) - SDK,
DbgPrnHk_v8i_all.rar/tgz (322.7 Kb/425.6 Kb) - all together
Исправлен ряд глюков в поддержке протокола WinDbg через COM-порт,
за что огромное спасибо KtP. Теперь стабильно работает от NT3.51 до Vista.
Исправлен глюк в обработке ключика --nowait.
2008.12.12
DbgPrnHk_v8g.rar/tgz (93.3 Kb/114.6 Kb) - archive with all necessary files,
DbgPrnHk_v8g_src.rar/tgz (135 Kb/160.8 Kb) - sources,
DbgPrnHk_v8g_sdk.rar/tgz (100.3 Kb/139.6 Kb) - SDK,
DbgPrnHk_v8g_all.rar/tgz (316.3 Kb/414.9 Kb) - all together
Добавлена поддержка протокола WinDbg через COM-порт!
Работает назависимо от того, какие версии NT ОС установлены на соединенных машинах.
2008.09.10
DbgPrnHk_v8d.rar/tgz (85.9 Kb/104.8 Kb) - archive with all necessary files,
DbgPrnHk_v8d_src.rar/tgz (107.7 Kb/128.7 Kb) - sources,
DbgPrnHk_v8d_sdk.rar/tgz (61 Kb/69.5 Kb) - SDK,
DbgPrnHk_v8d_all.rar/tgz (242.9 Kb/302.7 Kb) - all together
Добавлена поддержка Windows Vista.
2008.07.01
DbgPrnHk_v8c.rar/tgz (85.9 Kb/104.8 Kb) - archive with all necessary files,
DbgPrnHk_v8c_src.rar/tgz (107.6 Kb/128.6 Kb) - sources,
DbgPrnHk_v8c_sdk.rar/tgz (61 Kb/69.5 Kb) - SDK,
DbgPrnHk_v8c_all.rar/tgz (242.8 Kb/302.6 Kb) - all together
1-апрельский подарок:
Починил поддержку NT3.51, сломаную при добавлении syslog.
Добавлен ключ --syslog:mtu. Устанавливает максимальный размер пакета (по умолчанию 1024 байта).
2008.04.01
DbgPrnHk_v8b.rar/tgz (85.8 Kb/104.7 Kb) - archive with all necessary files,
DbgPrnHk_v8b_src.rar/tgz (107.6 Kb/128.5 Kb) - sources,
DbgPrnHk_v8b_sdk.rar/tgz (61 Kb/69.5 Kb) - SDK,
DbgPrnHk_v8b_all.rar/tgz (242.7 Kb/302.5 Kb) - all together
Быстрое обновление по мотивам замечаний:
Добавлена поддержка множественных выходных потоков (несколько ключиков --out:xxx).
Пока по одному потоку каждого типа.
Добавлен двоичный формат логов (ключ --raw). Данные сохраняются во внутреннем представлении.
2008.03.30
DbgPrnHk_v8a.rar/tgz (85.4 Kb/104.3 Kb) - archive with all necessary files,
DbgPrnHk_v8a_src.rar/tgz (107.2 Kb/128 Kb) - sources,
DbgPrnHk_v8a_sdk.rar/tgz (60.9 Kb/69.5 Kb) - SDK,
DbgPrnHk_v8a_all.rar/tgz (242 Kb/301.4 Kb) - all together
По просьбе Angelo Conforti добавлена поддержка протокола
syslog (RFC-3164). Включается ключем
--out:syslog HOST[:PORT].
Добавлено преобразование PID в имя процесса (ключ -P).
SIgnature Page теперь выделяется в младших физических адресах для ускорения поиска.
2008.03.30
DbgPrnHk_v7g.rar/tgz (80.9 Kb/99 Kb) - archive with all necessary files,
DbgPrnHk_v7g_src.rar/tgz (102.7 Kb/122.2 Kb) - sources,
DbgPrnHk_v7g_sdk.rar/tgz (34.2 Kb/39.1 Kb) - SDK,
DbgPrnHk_v7g_all.rar/tgz (207 Kb/260.2 Kb) - all together
Исправлена ошибка в заполнении 1-байтовых полей структуры, описывающей состояние и текущие параметры
сбора логов при распознавании командной строки.
Была ошибка, связаная с тем, что эти поля интерпретировались как 4х-байтовые и происходило наложение.
Т.е. попытка изменить одно значение портила еще 3 следующих.
В первую очередь это исправление касается KD Extension.
2007.10.29
DbgPrnHk_v7f.rar/tgz (80.8 Kb/98.8 Kb) - archive with all necessary files,
DbgPrnHk_v7f_src.rar/tgz (102.7 Kb/122.2 Kb) - sources,
DbgPrnHk_v7f_sdk.rar/tgz (34.1 Kb/39 Kb) - SDK,
DbgPrnHk_v7f_all.rar/tgz (206.9 Kb/259.9 Kb) - all together
добавлен ключик --ovw для включения режима записи поверх существующих лог-файлов.
добавлена поддержка NT4 Terminal Server (TS). Оказалось, что устройство DbgPrint() там отличается от обычной NT4.
убрано ограничение на размер буфера сообщений, связанное с размером NonPagedPool.
Теперь если запрашивается слишком большой буфер, он выделяется из PagedPool (которой больше), а потом фиксируется в памяти
(MmProbeAndLockPages(), если кто знает).
2007.10.20
DbgPrnHk_v7e.rar/tgz (77.6 Kb/95.6 Kb) - archive with all necessary files,
DbgPrnHk_v7e_src.rar/tgz (95.9 Kb/114.1 Kb) - sources,
DbgPrnHk_v7e_sdk.rar/tgz (33.7 Kb/38.7 Kb) - SDK,
DbgPrnHk_v7e_all.rar/tgz (196.7 Kb/248 Kb) - all together
добавлен ключик --run для управления режимом работы (сервис/обычное приложение).
По умолчанию DbgPrintLog работает как сервис, если его запускают под учетной записью SYSTEM.
Но при использовании в Windows PE (WinPE/BartPE/MobileOS) это не очень хороший вариант, т.к. там все запускается под SYSTEM'ом.
Используйте --run:user.
2007.06.06
DbgPrnHk_v7c.rar/tgz (76.7 Kb/94.6 Kb) - archive with all necessary files,
DbgPrnHk_v7c_src.rar/tgz (94.9 Kb/112.7 Kb) - sources,
DbgPrnHk_v7c_sdk.rar/tgz (33.7 Kb/38.7 Kb) - SDK,
DbgPrnHk_v7c_all.rar/tgz (194.9 Kb/245.5 Kb) - all together
исправлена ошибка, с ограничением буфера сообщений до 1Мб.
немножко интерфейсных улучшений
в снимок состояния системы добавлена информация о наличии подключенного отладчика (типа WinDbg)
экспериментальная поддержка NT3.51 на 80386, там где у процессора нет ряда полезный инструкций.
2007.04.17
DbgPrnHk_v7b.rar/tgz (75.5 Kb/93.2 Kb) - archive with all necessary files,
DbgPrnHk_v7b_src.rar/tgz (93.5 Kb/110.2 Kb) - sources,
DbgPrnHk_v7b_sdk.rar/tgz (33.6 Kb/38.6 Kb) - SDK,
DbgPrnHk_v7b_all.rar/tgz (192.3 Kb/241.8 Kb) - all together
исправлена поддержка NT3.51 в CrossNT.lib, а вместе с ней
и в новой логособиралке. Пользуйтесь, я лично проверял работоспособность.
2007.04.01
DbgPrnHk_v7a.rar/tgz (74.7 Kb/92.4 Kb) - archive with all necessary files,
DbgPrnHk_v7a_src.rar/tgz (93 Kb/109.6 Kb) - sources,
DbgPrnHk_v7a_sdk.rar/tgz (33.7 Kb/38.6 Kb) - SDK,
DbgPrnHk_v7a_all.rar/tgz (191.1 Kb/240.5 Kb) - all together
исправлен сборочный скрипт, а ссылку на предудущую версию с кривыми скриптами (да еще и не собирающуюся
из опубликованых исходников) я снес.
Библиотека Cross-NT окончательно отделена от DbgPrint SDK.
2007.02.18
Добавлен ключик --drv:reconfig для обновления настроек драйвера в соответствии с изменениями Registry без
перезапуска.
Добавлена возможность занесения в лог тукущего указателя стека (см.
DumpStackFramePtr).
Для включения записи этого значения в лог-файл успользуется ключ -sfp или --stack_frame_ptr.
Добавлена возможность управления из консоли следующими параметрами:
'I' - CheckIrql
'P' - DoNotPassMessagesDown
'O' - StopOnBufferOverflow
'A' - AggregateMessages
'?' - получить текущие параметры
Слегка улучшен код установки сервиса и драйвера.
Исправлена ошибка в команде lsig в KD Extension, из-за которой
поиск сигнатуры производился только в первом мегабайте физ. памяти.
Исправлена ошибка определения объема памяти в драйвере.
Исправлена ошибка в подсчете свободного места в буфере сообщений в драйвере.
Проявлялась в том, что даже после вычитывания всех сообщений драйвер считал, что буфер переполнен
и накопление сообщений останавливалось.
Драйвер полностью переведен на использование Cross-NT библиотеки для поддержки различных версий ОС.
И сама библиотека Cross-NT серьезно обновлена и подготовлена к самостоятельному использованию в др. драйверах.
Thanks to DeathSoft
2007.02.16
Исправлена ошибка в драйвере - не вызывалась функция IoCompleteRequest() о обработчиках Open/Close. Фактически, это утечка памяти.
Исправлена еще одна ошибка в драйвере - неправильно устанавливался указатель на хвост очереди сообщений при переполнении буфера.
В результате часть сообщений могла быть продублирована при созранении в файл.
В KD Extension исправлен ряд ошибок, приводящих к многократному
(повторному) сохранению сообщений в файл.
В KD Extension улучшены/исправлены текстовые сообщени.
2006.12.01
На этой страничке исправлена ссылка на версию с поддержкой Windows 2003 Server R2.
2006.11.16
Добавлена поддержка Windows 2003 Server R2! Там приличные изменения в
функциях работы с отладочными сообщениями, о которых я напишу чуть позже.
Параметры в командной строке теперь можно записывать так:
--drv:opt OptionName=OptionValue
Добавлены ключики --drv:deinst, --drv:uninst, --drv:uninstall, --drv:deinstall и аналогично
для сервиса: --svc:deinst, и т.д. Исключительно в целях удобства запоминания :)
Добавлен ключик -e в команды save и ls в KD Extension,
который позволяет извлечь те сообщения, которые уже отмечены как прочитаные (их забрала
user-mode часть), но еще не перетертые новыми сообщениями. Полезно для случаев, когда
в результате падения системы не все сообщения успели сохраиться в файл.
Упорядочен код, компилирующийся в вариантах Unicode и Ansi (для
KD Extension).
В драйвере исправлен мелкий глюк, из-за которого не выводилась в лог версия драйвера.
DbgPrnHk_v6e.rar/tgz (72 Kb/89.1 Kb) - archive with all necessary files,
DbgPrnHk_v6e_src.rar/tgz (89.4 Kb/105.4 Kb) - sources,
DbgPrnHk_v6e_sdk.rar/tgz (33.2 Kb/38.1 Kb) - SDK,
DbgPrnHk_v6e_all.rar/tgz (184.8 Kb/232.2 Kb) - all together
2006.10.27
Исправлена ошибка в обработке ключей -s, --max_log_size.
Исправлена ошибка в коде установки и удаления драйвера в режиме 1 (--drv:inst 1, самый первый).
В Kernel Debugger extension добавлены
команды:
del очистка буфера сообщений на удаленной машине
pause приостановка/продолжение сбора логов
drvopt изменение параметров сбора логов на удаленной машине
Исправлена ошибка в коде перехвата ф-ции DebugPring для NT 3.51.
Улучшена обработка ошибок в коде инициализации драйвера.
Появилась возможность вызывать Kernel Debugger при переполнении буфера сообщений.
Можно будет их сохранить и продолжить отладку и сбор логов. Включается
StopOnBufferOverflow=2
Улучшена поддержка NT3.51 благодаря последним достижениям в области GetModuleHandle().
DbgPrnHk_v6d.rar/tgz (70 Kb/87 Kb) - archive with all necessary files,
DbgPrnHk_v6d_src.rar/tgz (87.5 Kb/103.6 Kb) - sources,
DbgPrnHk_v6d_sdk.rar/tgz (32.8 Kb/37.5 Kb) - SDK,
DbgPrnHk_v6d_all.rar/tgz (180.7 Kb/227.7 Kb) - all together
2006.09.03
Исправлена ошибка в обработке ключей /h и /?.
Расширен и улучшен (я надеюсь) синтаксис командной строки. Обратная совместимость естественно сохранена.
Исправлена ошибка с не всегда работающим сбросом буфера сообщений при нажатии 'F' в консоли.
Вместо exit(xxx); теперь используется return xxx;. И конечно же сделана обработка таких возвратов.
Так что при возникновении фатальных ошибок при работе в Service Mode система не будет считать, что сервис просто упал.
Вместо этого будет произведена корректная остановка.
Добавлен ключик --status, показывающий текущее состояние компонентов.
Добавлена поддержка NT3.51 благодаря новой ф-ции GetModuleHandle().
В SDK добавлена возможность отправлять
нетекстовые (двоичные) сообщения, а в клиент - отображение таких сообщений в виде HEX-дампа.
Добавлена возможность более компактного хранения сообщений во внутреннем буфере за счет небольшого
уменьшнния точности измерения времени (см.
AggregateMessages).
Несколько переработана структура каталогов и .H-файлов.
DbgPrnHk_v6b.rar/tgz (65.8 Kb/82.4 Kb) - archive with all necessary files,
DbgPrnHk_v6b_src.rar/tgz (79.1 Kb/94.6 Kb) - sources,
DbgPrnHk_v6b_sdk.rar/tgz (30.8 Kb/35.3 Kb) - SDK,
DbgPrnHk_v6b_all.rar/tgz (168.2 Kb/211.9 Kb) - all together
2005.07.22
Исправлена ошибка в выводе сообщений об ошибках ;). Unicode-строки выводились как ANSI,
в результате показывалась только первая буква строки.
Исправлена ошибка в коде модификации адреса вызова при перехвате системного вызова -
отключение защиты страниц происходило вне pushfd+cli/popfd.
Thanks to DeathSoft.
Добавлена возможность отключения выходного потока сообщений (--no_out). В этом режиме
сообщения складируются только в буфере дравера и могут быть извлечены оттуда с помощью
Kernel Debugger extension.
Исправлен page-fault в модуле буферизации.
Исправлены опечатки и сделана небольшая оптимизация - для константных строк используется
memcpy вместо sprintf.
В Kernel Debugger extension добавлена опция
--last в командах ls/list и save для просмотра N последних сообщений.
В Kernel Debugger extension добавлена опция
--next в команде ls/list для просмотра очередных N сообщений.
В Kernel Debugger extension добавлена
команда lsig поиска буфера сообщений по сигнатуре - на случай повреждения системных областей.
В Kernel Debugger extension расширены логи
и исправлен ряд ошибок.
DbgPrnHk_v5f.rar/tgz (62 Kb/78.2 Kb) - archive with all necessary files,
DbgPrnHk_v5f_src.rar/tgz (67.4 Kb/78.8 Kb) - sources,
DbgPrnHk_v5f_sdk.rar/tgz (17 Kb/18.7 Kb) - SDK,
DbgPrnHk_v5f_all.rar/tgz (140.5 Kb/175.3 Kb) - all together
2005.05.23
Сделан Kernel Debugger extension
для извлечения логов из crashdump'a.
Добавлена возможность получения входного потока сообщений из файла и stdin'а.
DbgPrnHk_v5b.rar/tgz (59.2 Kb/74.9 Kb) - archive with all necessary files,
DbgPrnHk_v5b_src.rar/tgz (65.7 Kb/76.8 Kb) - sources,
DbgPrnHk_v5b_sdk.rar/tgz (17 Kb/18.7 Kb) - SDK,
DbgPrnHk_v5b_all.rar/tgz (136.3 Kb/170 Kb) - all together
2005.05.13
Исправлен баг с неправильной установкой размера буфера в драйвере. Буфер всегда устанавливался размером
в 8 сообщений. Из-за этого многие (особенно мелкие и частые) сообщение терялись.
Исправлен баг в user-mode клиенте с автоматическим сбросом файлового буфера на диск по истечению таймаута.
Таймаут никогда не достигался, т.к. по ошибке сбрасывался счетчик.
В user-mode клиенте добавлена горячая клавиша 'H' для выдачи help сообщения о назначении горячих клавиш.
DbgPrnHk_v5a.rar/tgz (47.4 Kb/59.7 Kb) - archive with all necessary files,
DbgPrnHk_v5a_src.rar/tgz (58.2 Kb/67 Kb) - sources,
DbgPrnHk_v5a_sdk.rar/tgz (17 Kb/18.7 Kb) - SDK,
DbgPrnHk_v5a_all.rar/tgz (117.8 Kb/145 Kb) - all together
2005.04.25
Есть в русском языке неопределенный артикль, использующийся для выражения всего многообразия эмоций.
В данном контексте его следует произносить сильно растягивая
последюю гласную, с глубоким пониманиям трагизма произошедшего и прикрывая лицо рукой.
Короче, нашел я страшный баг, существовавший с самой первой версии. А именно - в модуле буферизации вывода
размер буфера (по всей видимости в отладочных целях) был установлен в 4 байта (!) вместо положеных
64k. Как наверное легко догадаться, производительность это снижало просто таки немеряно.
А вылезло это совершенно случайно. Я столкнулся с необходимостью собрать логи от утилиты, мониторящей файловые операции.
Оказалось, что более 95% всех отбыли в неизвестном направлении.
В процессе расследования были оптимизирована сама мониторящая утилита, драйвер и некоторые куски клиента
DbgPrint logger'а, исправлен ряд ошибок (см. ниже), я даже провел исследование зависимости количества выживших логов от
размера буфера в драйвере. Но все это оказывало лишь несущественное влияние, в единицы процентов.
И вот тогда... я решил увеличить размер буфера в клиенте с 64k до 128k. Зашел в flusher.h,
а там....
Есть в русском языке неопределенный артикль.
Исправлена ошибка с неправильными значениями ProcessId в сообщениях приходящих от OutputDebugString()
Сделан workaround для корректной обработки отладочных сообщений в кривых контекстах исполнения
(когда регистр FS показывает непонятно куда, и как следствие недоступны Process и Thread ID).
Все внутренние состояния (переменные, указатели, счетчики, флаги и т.п.) собраны в единую public структуру,
указатель на которую экспортируется из модуля драйвера. А сделано это для того, чтобы можно было написать
Kernel Debugger Extension для извлечения логов из дампа умершей системы, а также отдельную (не зависящую от
наличия Kernel Debugger'а) утилиту для тех же целей.
В SDK добавлена возможность отправлять
самостоятельно заполненый пакет с отладочным сообщением (timestamp, Process/Thread ID CPU, etc.)
непосредственно в очередь сообщений.
DbgPrnHk_v5.rar/tgz (47.2 Kb/59.5 Kb) - archive with all necessary files,
DbgPrnHk_v5_src.rar/tgz (53.1 Kb/61.2 Kb) - sources,
DbgPrnHk_v5_sdk.rar/tgz (17 Kb/18.7 Kb) - SDK,
DbgPrnHk_v5_all.rar/tgz (112.6 Kb/139 Kb) - all together
2005.04.16
Сделан человеческий способ определения System Account'а - по SID владельца процесса. Раньше определялось по
User Name, что есть в корне неверно для не-английской винды.
В драйвере работа с Registry Options вынесена в отдельную ф-цию.
DbgPrnHk_v4f.rar/tgz (46.8 Kb/59 Kb) - archive with all necessary files,
DbgPrnHk_v4f_src.rar/tgz (51.9 Kb/59.9 Kb) - sources,
DbgPrnHk_v4f_sdk.rar/tgz (16.5 Kb/17.5 Kb) - SDK,
DbgPrnHk_v4f_all.rar/tgz (110.6 Kb/136 Kb) - all together
2005.02.25
Изиенен способ передачи сообщений от OutputDebugString() в thread, занимающийся сохранением их на диск.
При интенсивном потоке таких сообщений в сочетании с 100% загрузкой процессора терялась часть сообщений
из kernel-mode. Поэтому теперь все сообщения передаются драйвер.
DbgPrnHk_v4e.rar/tgz (46.7 Kb/58.9 Kb) - archive with all necessary files,
DbgPrnHk_v4e_src.rar/tgz (51.4 Kb/59.3 Kb) - sources,
DbgPrnHk_v4e_sdk.rar/tgz (15.6 Kb/16.2 Kb) - SDK,
DbgPrnHk_v4e_all.rar/tgz (109 Kb/134.1 Kb) - all together
2005.02.25
Исправлены глюке при выводе времени с высокой точностью (иногда писался "-" посреди числа).
Исправлена ошибка из-за которой для работы с утилитой необходимо было сначала установить драйвер (ключ -drv)
DbgPrnHk_v4d.rar/tgz (46.5 Kb/58.7 Kb) - archive with all necessary files,
DbgPrnHk_v4d_src.rar/tgz (51.1 Kb/58.9 Kb) - sources,
DbgPrnHk_v4d_sdk.rar/tgz (15.6 Kb/16.1 Kb) - SDK,
DbgPrnHk_v4d_all.rar/tgz (108.6 Kb/133.5 Kb) - all together
2005.01.16
Добавлена опция для загрузки самым первым драйвером.
Добавлена возможность отображения номера CPU, на котором было принято сообщение.
В SDK
добавлена поддержка Kernel Mode.
Добавлена возможность использования альтернативных методов получения точного времени
debug-messages и управление поведением при переполнении буфера сообщений. См.
DbgPrint logger registry settings
DbgPrnHk_v4c.rar/tgz (46.4 Kb/58.6 Kb) - archive with all necessary files,
DbgPrnHk_v4c_src.rar/tgz (51 Kb/58.8 Kb) - sources,
DbgPrnHk_v4c_sdk.rar/tgz (15.5 Kb/16.1 Kb) - SDK,
DbgPrnHk_v4c_all.rar/tgz (108.3 Kb/133.2 Kb) - all together
2005.01.16
В SDK
добавлена поддержка для Native Applications.
Добавлена возможность блокировки передачи debug-messages в DebugPrint(). При установке значения DoNotPassMessagesDown
в ключе [HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk] в DWORD:0x00000001 драйвер
будет и дальше отлавливать debug-messages, но не будет передавать управление в настоящую
DbgPrint() ни при каких условиях.
DbgPrnHk_v3b.rar/tgz (38.5 Kb/50.2 Kb) - archive with all necessary files,
DbgPrnHk_v3b_src.rar/tgz (43.9 Kb/50.5 Kb) - sources,
DbgPrnHk_v3b_sdk.rar/tgz (14.5 Kb/14.8 Kb) - SDK,
DbgPrnHk_v3b_all.rar/tgz (92.4 Kb/115.2 Kb) - all together
2005.01.03
Исправлена ошибка в преобразовании TimeStamp'а сообщения из счетчика тактов процессора
(QueryPerformanceCounter()/KeQueryPerformanceCounter()) в human-readable формат.
Очень помогла статья из
MSDN
Добавлена возможность выдачи TimeStamp с высокой точностью (до 100нс).
Включается при помощи модификатора N в строке формата выдачи времени в ключе -T.
DbgPrnHk_v3a.rar/tgz (38.4 Kb/50.2 Kb) - archive with all necessary files,
DbgPrnHk_v3a_src.rar/tgz (31.5 Kb/36.4 Kb) - sources,
DbgPrnHk_v3a_sdk.rar/tgz (12.3 Kb/12.5 Kb) - SDK,
DbgPrnHk_v3a_all.rar/tgz (77.9 Kb/98.7 Kb) - all together
2004.12.17
Добавлен SDK
для непосредственного общения с log-собирающими утилитами.
Добавлена возможность перехвата debug-messages на Irql > DISPATCH_LEVEL.
В NT4 это не очень актуально. Хотя документация запрещает использование
DbgPrint() на высоком Irql, мой UniATA драйвер
пользовался этой функцией вполне
успешно. А вот в w2k и старше пошли глюки - действительно нельзя. При установке значения
CheckIrql
в ключе [HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk] в DWORD:0x00000001 драйвер
будет и дальше отлавливать debug-messages, но не будет передавать управление в настоящую
DbgPrint() при Irql > DISPATCH_LEVEL.
В драйвере сделана настройка размера буфера сообщений. Задается значением BufferSize
в ключе [HKLM\SYSTEM\CurrentControlSet\Services\DbgPrnHk]. Размер - в Kb. Размер
автоматически выравнивается на степень двойки.
В заголовок log-файла добавлена информация о Time Zone.
Изменен формат выдачи времени. Теперь используется не UTC, а Local Time. Вернуться к
UTC можно при помощи модификатора U в строке формата выдачи времени в ключе -T.
Исправлена ошибка в обработке переполнения внутреннего буфера сообщений в драйвере.
При возникновении переполнения сообщения многократно дублировались, т.к. неправильно
обновлялся счетчик непрочитанных сообщений.
DbgPrnHk_v3.rar/tgz (38.1 Kb/49.9 Kb) - archive with all necessary files,
DbgPrnHk_v3_src.rar/tgz (31.2 Kb/36 Kb) - sources,
DbgPrnHk_v3_sdk.rar/tgz (12.3 Kb/12.5 Kb) - SDK,
DbgPrnHk_v3_all.rar/tgz (77.3 Kb/98 Kb) - all together
2004.12.11
Исправлена ошибка в обработке сообщений от OutputDebugString() длиной более
120 символов. Раньше сообщение просто обрезалось до этой длины, а дальше печатался мусор.
В заголовок log-файла добавлена информация о типе процессора и объеме памяти.
DbgPrnHk_v2k.rar/tgz (37.1 Kb/48.8 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2k_src.rar/tgz (26.6 Kb/29.9 Kb) -
исходники
2004.11.21
Исправлена ошибка синхронизации thread'ов, иногда приводившая к Page Fault'у.
DbgPrnHk_v2j.rar/tgz (36.6 Kb/48.4 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2j_src.rar/tgz (26 Kb/29.2 Kb) -
исходники
2004.11.06
К информации о Process/Thread Privileges добавлена проверка доступности
(может ли данная привилегия быть предоставлена).
Исправлена недоработка в коде установки драйвера и сервиса. Предыдущие
версии требовали, чтобы для установки драйвера и/или сервиса DbgPrintLog.exe
лежал в текущем каталоге.
DbgPrnHk_v2i.rar/tgz (36.6 Kb/48.4 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2i_src.rar/tgz (26 Kb/29.2 Kb) -
исходники
2004.11.06
В заголовок log-файла добавлена информация о Process/Thread Privileges. Иногда очень помогает.
DbgPrnHk_v2h.rar/tgz (36.4 Kb/48.2 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2h_src.rar/tgz (25.9 Kb/29 Kb) -
исходники
2004.10.10
Добавлено:
утилита EchoDbg.
создание индексного файла для log-файла - ключ -x. См. *.h в \inc.
выделение log-файла необходимого размера заранее - -S switch. См. *.h в \inc.
DbgPrnHk_v2g.rar/tgz (36.2 Kb/47.9 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2g_src.rar/tgz (25.5 Kb/28.4 Kb) -
исходники
2004.09.12
Исправлено:
падение при большом потоке сообщений через OutputDebugString()
конфликт ключей -t. Теперь -t включает в лог информацию о thread'е, а -T задает формат вывода времени.
DbgPrnHk_v2f.rar/tgz (28.9 Kb/30.5 Kb) -
архив со всеми необходимыми файлами.
DbgPrnHk_v2f_src.rar/tgz (23 Kb/25 Kb) -
исходники
2004.08.23
Добавлено:
возможность запускать DbgPrintLog как сервис
управление порядком загрузки (Boot/System/Automatic/Manual)
человеческий формат даты в логах.
DbgPrnHk_v2e.rar/tgz (28.9 Kb/30.4 Kb) -
исполнимые файлы.
DbgPrnHk_v2e_src.rar/tgz (23 Kb/24.9 Kb) -
исходники
2004.05.09
Найден и исправлен страшный глюк. В XP и старше все повисало (99% CPU) при выгрузке драйвера
DbgPrnHk_v2d.rar/tgz (26.3 Kb/27.8 Kb) -
исполнимые файлы.
DbgPrnHk_v2d_src.rar/tgz (19.4 Kb/21.1 Kb) -
исходники
2004.04.28
Добавлено много параметров и управляющих клавиш, настраивайте на здоровье. :)
DbgPrnHk_v2b.rar/tgz (26.3 Kb/27.8 Kb) -
исполнимые файлы.
DbgPrnHk_v2b_src.rar/tgz (122.4 Kb/141.5 Kb) -
исходники
2004.04.23
Добавлен перехват OutputDebugString().
Обработка клавиатуры вынесена в отдельный thread.
DbgPrnHk_v2.rar/tgz (20.9 Kb/22.2 Kb) -
исполнимые файлы.
DbgPrnHk_v2_src.rar/tgz (17.6 Kb/18.7 Kb) -
исходники
2004.04.19
DbgPrnHk_v1a.rar/tgz (20.1 Kb/21.3 Kb) -
Первая версия.
DbgPrnHk_v1a_src.rar/tgz (15.9 Kb/17 Kb) -
исходники
2004.04.16
См. также
Предложения и замечания слать на
alterX@alter.org.ua (remove X)
|
 |
|