<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM匯編指令調試方法

ARM匯編指令調試方法

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
學(xué)習ARM匯編時(shí),少不了對ARM匯編指令的調試。作為支持多語(yǔ)言的調試器,gdb自然是較好的選擇。調試器工作時(shí),一般通過(guò)修改代碼段的內容構造trap軟中斷指令,實(shí)現程序的暫停和程序執行狀態(tài)的監控。為了在x86平臺上執行ARM指令,可以使用qemu模擬器執行ARM匯編指令。

一、準備ARM匯編程序

首先,我們構造一段簡(jiǎn)單的ARM匯編程序作為測試代碼main.s。

本文引用地址:http://dyxdggzs.com/article/201611/317876.htm
.globl _start_start:mov R0,#0swi	0x00901

以上匯編指令完成了0號系統調用exit的調用。mov指令將系統調用號傳入寄存器R0,然后使用0x00901軟中斷陷入系統調用。

為了運行ARM匯編代碼,需要使用交叉編譯器arm-linux-gcc對ARM匯編代碼進(jìn)行編譯。下載交叉編譯器安裝完畢后,對ARM匯編代碼進(jìn)行編譯。

arm-linux-gcc main.s -o main -nostdlib

編譯選項“-nostdlib”表示不使用任何運行時(shí)庫文件,編譯生成的可執行文件main只能在A(yíng)RM體系結構的系統上運行。

二、編譯安裝qemu模擬器

為了x86的Linux系統內運行ARM體系結構的可執行程序,需要安裝qemu模擬器。

首先下載qemu源碼,然后保證系統已經(jīng)安裝了flex和bison。

編譯安裝qemu。

./configure --prefix=/usrsudo make && make install

然后使用qemu的ARM模擬器執行ARM程序。

qemu ./main

三、編譯安裝arm-gdb

為了調試ARM程序,需要使用gdb的源碼編譯生成arm-gdb。

首先下載gdb源代碼,編譯安裝。

./configure --target=arm-linux --prefix=/usr/localsudo make && make install

為了和系統的gdb避免沖突,我們將gdb的安裝目錄安裝到/usr/local,然后建立軟鏈接即可。

ln -s /usr/bin/arm-gdb /usr/local/gdb/gdb

之后便可以使用arm-gdb命令調試ARM程序了。

四、調試ARM程序

首先使用qemu打開(kāi)遠程調試端口。

qemu-arm -g 1024 ./main

然后導出環(huán)境變量QEMU_GDB。

export QEMU_GDB=/usr/local/gdb

最后,進(jìn)入gdb調試。

arm-gdb ./main

進(jìn)入arm-gdb后,首先連接遠程調試端口。

(gdb) target remote localhost:1024

然后使用gdb常用的調試命令調試代碼即可。

(gdb) disassemble			// 查看反匯編(gdb) x /8xw 0x0808e		// 查看內存(gdb) info register			// 查看寄存器(gdb) continue				// 繼續執行(gdb) stepi					// 匯編級逐過(guò)程(gdb) nexti					// 匯編級逐語(yǔ)句



關(guān)鍵詞: ARM匯編指令調試方

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>