2012-02-06 4 views
0

Мне интересно, какой инструмент отладки я могу использовать для программы сборки и как ее использовать.. Инструмент для отладки файлов ASPM

Я написал простой загрузчик в сборке. Тем не менее, он не совсем работает должным образом, как мне хотелось, хотя я считаю, что логика правильная. Итак, я пытаюсь использовать отладчик, чтобы я мог пройти через загрузчик, проверять состояние регистра и т. Д.

Я попробовал GDB на Ubuntu, скомпилировал мой .asm для .elf и .o (мне нужно сделайте это? Если да, каков следующий шаг?) Кроме того, я прочитал, что в симуляторе Bochs есть внутренний отладчик, но я не могу найти какой-либо документ, как его использовать. У меня также есть Visual Studio 2010, windbg, но я не знаю, как использовать его для отладки файла .asm.

Если вы сделали это раньше, это был бы простой ответ. Любая помощь могла бы быть полезна.

С уважением

+1

Посмотрите предыдущий ответ: http://stackoverflow.com/questions/2611624/low-level-qemu-based-debugging (обратите внимание на ссылку wsdev wiki) – user786653

+0

Спасибо за ссылку, но я не думаю, что это вполне помогает моей ситуации. Возможно, я ошибаюсь .. но – ElectroJunkie

+0

http://stackoverflow.com/questions/28811811/using-gdb-in-16-bit-mode –

ответ

1

Если вы хотите отлаживать код загрузчика, вы, очевидно, нужно запустить его в той же среде, что код сам будет работать. Как я уверен, вы уже знаете, код загрузчика выполняется в реальном режиме, как только BIOS закончит выполнение POST. Загрузочный загрузчик затем загружается в память через 7c00h и выполняется переход к этому адресу.

Очевидно, что такую ​​среду нельзя надежно эмулировать после того, как у вас запущен ваш компьютер и «настоящая» операционная система уже загружена, так как к тому моменту ваш процессор находится в защищенном режиме (или в длинном режиме, если это AMD64). Ваш единственный вариант на этом этапе - использовать QEMU или Bochs, чтобы подражать реальному ПК в вашей операционной системе. Я использовал Bochs для отладки некоторого кода загрузчика, который я написал в прошлом, и он работал достаточно хорошо. Подробные инструкции см. На страницах руководства.

+0

Спасибо Даниилу. Странно, что я не мог заставить рабочий отладчик Bochs работать правильно. Я попытался настроить конфигурацию в командной строке, но для меня это не совсем сработало. (Даже для командной строки он просто запускает эмулятор GUI ...) Я думаю, я дам еще один снимок при чтении руководства ... – ElectroJunkie

+0

Раньше я прикреплял его к gdb, и эта техника работала нормально. Я уверен, что это руководство. –

Смежные вопросы