linux下ARM匯編程序的調試
首先說(shuō)明需要的工具
1. QEMU
2. GDB(源代碼) 3. arm-linux交叉工具鏈 先編譯GDB,設置target為ARM平臺: $ ./configure --target=arm-linux $ make OK,開(kāi)始寫(xiě)匯編程序,sample代碼很簡(jiǎn)單,給3個(gè)寄存器賦值,之后死循環(huán)。注意一定要死循環(huán),否則的話(huà)會(huì )遇到非法指令或者未知指令。 =======test.S======== .globl _start _start: loop: =======EOF========= 編譯: $ ./arm-linx-as -o test.o test.S 鏈接: $ ./arm-linux-ld -o test test.o 此時(shí)可以用objdump查看test的內容: $ ./arm-linux-objdump -d test 接下來(lái)就是調試了,用qemu啟動(dòng)gdb端口監聽(tīng): $ qemu-arm -g 11111 test 之后啟動(dòng)gdb,注意啟動(dòng)的時(shí)候要指明test,不能啟動(dòng)之后用file指定test(為什么不能不清楚,不過(guò)是試驗結果): $ ./gdb /PATH_TO_TEST (gdb) target remote localhost:11111 (gdb) disassemble (gdb) display /10i $pc-16 (gdb) si (gdb) info register (gdb) x /16 0 差不多就知道這些了,有一個(gè)問(wèn)題是不知道如何設置指令的斷點(diǎn),以后再試吧…… 現在可以邊看書(shū)邊動(dòng)手嵌入式項目實(shí)戰了~ |
評論