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

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

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


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

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

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

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

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