Налагодження операційної системи c допомогою відладчика, dev64

При експериментах з розробкою Операційної Системи рано чи пізно виникає питання налагодження. Найчастіше навіть рано, ніж пізно. Я сам досить довго справлявся підручними засобами, типу отладочного виведення, поки несподівано не наскочив в форумах на згадку про вбудований відладчик в Bochs.

Налагодження операційної системи c допомогою відладчика, dev64

Bochs у мене був встановлений давно, я вирішив заглянути в інсталяційний директорій і виявив, що у Bochs серед інших здійсненних файлів є два здійсненних файлу bochs.exe і bochsdbg.exe:

Налагодження операційної системи c допомогою відладчика, dev64

Щоб протестувати завантаження, для початку беру простий Hello World завантажувач:

Записую його в hello.asm, компілює: nasm hello.asm -o hello.img
Отримую файл hello, розміром 512 байт. Це образ дискети. У першому секторі завантажувальний сектор c програмою «Hello world»

Запускаю bochsdbg.exe. Відкривається стартове меню:

Налагодження операційної системи c допомогою відладчика, dev64

Налагодження операційної системи c допомогою відладчика, dev64

Натискаю OK, в стартовому меню натискаю на Start. Відкривається два вікна, вікно з віртуальною машиною, і вікно з командним рядком для команд налагодження. Команди налагодження схожі на gdb. наприклад:

Налагодження операційної системи c допомогою відладчика, dev64

Після команди "c '(сontinue), Bochs продовжує виконання і зупиняється на першій команді завантажувача, як і хотілося. Щоб по кроках регламентуватиме даю команду 'n' (next). Попередню команду повторюю простим натисканням на 'Enter'.

Налагодження операційної системи c допомогою відладчика, dev64

У відладчика багато різних команд. наприклад:

І т.д. допомога по командам можна отримати з командного рядка, за допомогою команди 'h', як я писав вище. А також на сайті розробників є довідник команд і багато іншої корисної інформації, якої варто користуватися. Щоб трохи ще проілюструвати як це виглядає, ще пара скроневої:

Налагодження операційної системи c допомогою відладчика, dev64

Ось, що можна побачити на екрані емулятора:

Налагодження операційної системи c допомогою відладчика, dev64

Щоб не створювати конфігурацію Bochs заново при кожному старті, її можна зберегти після конфігурації, перед стартом віртуальної машини.

Додам також, що налагоджувати можна не тільки реальний режим, а й, наприклад, перехід з реального в захищений. По кроках. Що, звичайно ж дуже зручно і робить Bochs вельми зручним інструментом налагодження. Навіть якщо його робота чимось відрізняється від реального комп'ютера, все одно можливість покрокової налагодження будь-якого місця вашого коду, будь навіть це ядро ​​операційної системи або завантажувач роблять Bochs незамінним засобом.