當前位置:編程學習大全網 - 源碼下載 - linux下調試nasm用什麽工具?或者有什麽辦法可以調試壹下?我不擅長用gdb。我想調試我寫的com文件。

linux下調試nasm用什麽工具?或者有什麽辦法可以調試壹下?我不擅長用gdb。我想調試我寫的com文件。

在Linux下調試匯編代碼,可以用GDB、DDD等通用調試器,也可以用專門用來調試匯編代碼的ALD(匯編語言調試器)。

從調試的角度來看,使用GAS的好處是可以在生成的目標代碼中包含壹個符號表,這樣就可以使用GDB和DDD進行源代碼級的調試。要在生成的可執行程序中包含符號表,可以通過以下方式進行編譯和鏈接:

[xiaowp @ Gary code]$ as-gstabs-o hello . o hello . s

[小p@gary碼]$ ld -o hello hello.o

執行as命令時帶參數- gstabs可以告訴匯編器在生成的目標代碼中添加壹個符號表,同時需要註意的是,在與ld命令鏈接時不能添加-s參數,否則鏈接時會刪除目標代碼中的符號表。

匯編程序員通常面臨壹些惡劣的軟硬件環境,短ALD可能更符合實際需要,所以下面主要介紹如何用ALD調試匯編程序。首先,在命令行模式下執行ald命令來啟動調試器。該命令的參數是要調試的可執行程序:

[xiaowp@gary doc]$ ald妳好

匯編語言調試器0.1.3版權所有

地獄精靈Intel 80386 (32位),LSB,可執行,版本1(當前)

加載調試符號...(加載了15個符號)

ald & gt

當ALD提示符出現時,使用反匯編命令反匯編代碼段:

ald & gt拆卸-s .text

分解部分。文本(0x08048074 - 0x08048096)

08048074 BA0F000000 mov edx,0xf

08048079 B998900408 mov ecx,0x8049098

0804807E BB01000000 mov ebx,0x1

08048083 B804000000 mov eax,0x4

08048088 CD80 int 0x80

0804808A BB00000000 mov ebx,0x0

0804808 f b 80100000 mov eax,0x1

08048094 CD80 int 0x80

上面輸出信息的第壹列是指令對應的地址碼,可以用來設置程序執行時的斷點:

ald & gt中斷0x08048088

為0x08048088設置了斷點1

設置斷點後,使用run命令開始執行程序。ALD會在遇到斷點時自動暫停程序,並顯示所有寄存器的當前值:

ald & gt奔跑

啟動程序:妳好

在0x08048088處遇到斷點1

eax = 0x 000000004 ebx = 0x 00000001 ecx = 0x 08049098 EDX = 0x 0000000 fesp = 0x bffff 6 c 0 ebp = 0x 00000000 ESI = 0x 00000000 EDI = 0x 0000000

ds = 0x 00000002 b es = 0x 00000002 b fs = 0x 00000000 GS = 0x 00000000

ss = 0x 00000002 b cs = 0x 00000023 EIP = 0x 08048088 e flags = 0x 00000246

旗幟:PF ZF IF

08048088 CD80 int 0x80

如果需要單步調試匯編代碼,可以使用下壹個命令:

ald & gt然後

妳好,世界!

eax = 0x 00000000 f ebx = 0x 00000000 ecx = 0x 08049098 EDX = 0x 0000000 fesp = 0x bffff 6 c 0 ebp = 0x 00000000 ESI = 0x 00000000 EDI = 0x 0000000

ds = 0x 00000002 b es = 0x 00000002 b fs = 0x 00000000 GS = 0x 00000000

ss = 0x 00000002 b cs = 0x 00000023 EIP = 0x 0804808 f e flags = 0x 00000346

標誌:PF ZF TF IF

0804808 f b 80100000 mov eax,0x1

有關ALD支持的所有調試命令的詳細列表,您可以使用help命令:

ald & gt幫助

命令可以縮寫。

如果輸入空白命令,則重復最後壹個命令。

鍵入“help & ltcommand & gt',以了解有關& ltcommand & gt。

通用命令

連接清除繼續分離拆解

輸入檢查文件幫助加載

下壹次退出寄存器運行設置

分步卸載窗口寫入

斷點相關命令

中斷刪除禁用啟用忽略

l斷路器t斷路器

  • 上一篇:硫酸黏菌素的中國藥典
  • 下一篇:國家雞源代碼
  • copyright 2024編程學習大全網