2016-05-16 120 views
0

我經歷了幾天完成一個程序,沒有進行調試,並且在我做的一個問題上,ppl建議我使用可以像VS studio一樣逐行調試的調試工具。 我剛剛熟悉使用CLI。 (在VirtualBox上使用Ubuntu)以及尋找某人爲我提供使用調試工具的步驟。爲了以防萬一,我使用NASM和Gcc工具。我使用它們就像下面的那些。如何在ASM中進行調試? (Ubuntu)

nasm -f elf search.asm (this makes search.o) 
gcc -o search search.o asm_io.o (I use the external file to use some functions) 
./search  
+1

我在[x86 tag wiki](http://stackoverflow.com/tags/x86/info)中放了一小段用於使用GDB調試asm的命令。如果你還沒有使用其他語言的gdb,那麼你一般需要學習gdb。我絕對同意調試器對於asm必不可少的建議。你不能像在高級語言中一樣分散調試'printf'調用,因爲即使調用一個函數也會影響你的寄存器(並且很容易引入新的錯誤,並且某些函數的優化方式只適用於葉函數...) –

+0

'gcc'命令只能在32位系統上運行。在一個64位系統上,你需要用'gcc -m32'連接由'nasm -felf'創建的32位對象。請參閱[本文](http://stackoverflow.com/questions/36861903/assembling-32-bit-binaries-on-a-64-bit-system-gnu-toolchain/36901649#36901649)瞭解有關使用NASM構建信息和gcc。 –

+0

它聽起來像你在問你在哪裏可以找到一個教程 –

回答

1

GDB看起來是這裏的解決方案:

gdb search 

看到這個link

+0

這幾乎是一個鏈接唯一的答案。請詳細說明。 –

+0

我認爲詳細闡述一個更準確的答案應該包括gdb文檔,因爲我沒有看到任何明確的限制或要求。所以,我想讓他從哪裏開始。而且,au fur et a measure,他的進步,SO總是在這裏,然後我會詳細闡述。 – Vtik