понедельник, 12 декабря 2011 г.

WinDBG kernel debugging with VirtualBox

Настройка WinDBG kernel debugger для отладки гостевой системы в VirtualBox.
Коротко, ничего лишнего.

WinDBG устанавливается на хосте, отлаживается система внутри VirtualBox.
Считаем что ОС Windows Vista или Windows 7 (x86 или x64) уже установлены.

1. Останавливаем эмуляцию, открываем свойства виртуальной машины.
Переходим на вкладку "COM-порты", включаем порт COM1.
Режим порта "Хост-канал", чекбокс "Создать канал" установлен.
Прерывание 4, порт 0x3F8.
Путь к порту/файлу: \\.\pipe\wmdbgcom1

2. Включаем эмуляцию, ждем загрузки гостевой ОС. Открываем cmd.exe c правами админа.
Вводим:
bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200
bcdedit /bootdebug on
bcdedit /debug on


3. Запускаем WinDBG на хосте, открываем File - Kernel Debug, вкладка "COM"
В окошке вводим наши параметры:
Port: \\.\pipe\wmdbgcom1
Baud Rate: 115200
Установить галочку "Pipe"

Нажимаем ОК

4. Перезагружаем гостевую ОС в VirtualBox

5. Загружаем отладочные символы из интернета: ждем когда отладчик прицепится, ждем загрузки гостевой ОС, переходим в WinDBG, жмем Ctrl+Break. После остановки и перехода в режим отладки, в главном меню WinDBG выбираем пункт File - Symbol search path
Вводим: SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols
Жмем ОК.
В командной строке отладчика вводим: .reload
Ждем завершения операции

6. Все, отлаживаемся на здоровье

Важно: без запущенного отладчика гостевая ОС будет стартовать оооочень долго. Поэтому без WinDBG теперь эта виртуалка работать не будет. Чтобы вернуть все назад, нужно отключить отладку в гостевой ОС. Или как вариант - выключить COM порт в настройках VirtualBox (это проще)

3 комментария: