Первые могут лишь следить за работой программ пользовательского
режима и не способны ни отслеживать системные вызовы, ни следить за
работой ядра. Кроме того, для использования таких отладчиков программа
должна быть соответствующим образом подготовлена (скомпилирована).
Отладчики же режима ядра, напротив, позволяют полностью
контролировать работу системы, а, следовательно, и всех программ.
Характеристики:
- тип (режима ядра/пользовательский);
- поддержка символьной отладки (способность читать исходные
коды программы и работать с ними). Набор поддерживаемых
языков (сред/диалектов);
- набор отображаемой информации: регистры процессора, стек,
память (режимы отображения содержимого памяти);
- поддерживаемые режимы отладки: пошаговый, с точками
останова, с реакцией на события в системе;
- состав отслеживаемых событий в системе: аппаратные
прерывания, обращения к драйверу (другому модулю ядра),
вызов функции и т.д.
- (обычно для отладчиков режима ядра) требования к аппаратной
поддержке, возможность работы на «живой» системе;
- возможность анализа файлов дампа.
Представители.
Отладчики пользовательского режима: Turbo Debugger (Borland Software
Corporation), Cool Debugger (Wei Bao), W32Dasm
Отладчики режима ядра: i386kd/alphakd/ia64kd и WinDbg (Microsoft
Corporation) (для работы в “живую” требуют 2 машины. Для обхода этого
ограничения существует надстройка LiveKd (Mark E. Russinovich)), SoftIce
(NuMega).