2012-02-06 62 views
0

我想知道哪個調試工具可用於裝配程序以及如何使用它。.ASM文件調試工具

我在彙編中寫了一個簡單的bootloader。然而,儘管我認爲邏輯是正確的,但它並沒有像我想的那樣正常工作。所以,我試圖使用一個調試器,以便我可以通過引導加載程序,檢查寄存器狀態等。

我在Ubuntu上試過GDB,將.asm編譯爲.elf和.o(我是否需要如果是,下一步是什麼?)另外,我讀了Bochs模擬器中有一個內部調試器,但我無法找到任何文檔如何使用它。我也有Visual Studio 2010,windbg,但我不知道如何將它用於.asm文件調試。

如果你以前做過這個,這將是一個簡單的答案。任何幫助將非常感激。

真誠

+1

看看這個以前的答案:http://stackoverflow.com/questions/2611624/low-level-qemu-based-debugging(注意osdev維基鏈接) – user786653 2012-02-06 19:28:43

+0

感謝您的鏈接,但我不認爲它相當有助於我的情況。我可能是錯的..但 – ElectroJunkie 2012-02-06 21:29:54

+0

http://stackoverflow.com/questions/28811811/using-gdb-in-16-bit-mode – 2015-10-06 13:44:36

回答

1

如果你要調試Bootloader代碼,你顯然需要在同一個環境中運行它自身希望的代碼在運行。我敢肯定你已經知道了,執行Bootloader代碼在BIOS完成POST後,以實模式運行。然後bootloader在7c00h被加載到內存中,並跳轉到該地址。

顯然,一旦你的計算機運行並且已經加載了一個「真實」的操作系統,這種環境就不能被可靠地模擬,因爲那時你的CPU處於保護模式(或者長模式,如果它是AMD64 )。此時您唯一的選擇是使用QEMUBochs以模擬操作系統中的真實PC。我使用Bochs來調試過去編寫的一些引導加載程序代碼,它的工作非常好。查看手冊頁以獲取更詳細的說明。

+0

謝謝丹尼爾。奇怪的是,我無法讓Bochs內部調試器正常工作。我試圖在命令行上進行配置,但對我來說並不合適。 (即使對於命令行,它只是啓動GUI模擬器...)我想我會再讀一次閱讀手冊... – ElectroJunkie 2012-02-06 21:28:35

+0

我曾經附加到gdb和該技術工作正常。我確定這是該手冊的某個地方。 – 2012-02-06 21:29:52