linux下ARM汇编程序的调试
首先说明需要的工具
1. QEMU
2. GDB(源代码) 3. arm-linux交叉工具链 先编译GDB,设置target为ARM平台: $ ./configure --target=arm-linux $ make OK,开始写汇编程序,sample代码很简单,给3个寄存器赋值,之后死循环。注意一定要死循环,否则的话会遇到非法指令或者未知指令。 =======test.S======== .globl _start _start: loop: =======EOF========= 编译: $ ./arm-linx-as -o test.o test.S 链接: $ ./arm-linux-ld -o test test.o 此时可以用objdump查看test的内容: $ ./arm-linux-objdump -d test 接下来就是调试了,用qemu启动gdb端口监听: $ qemu-arm -g 11111 test 之后启动gdb,注意启动的时候要指明test,不能启动之后用file指定test(为什么不能不清楚,不过是试验结果): $ ./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 差不多就知道这些了,有一个问题是不知道如何设置指令的断点,以后再试吧…… 现在可以边看书边动手嵌入式项目实战了~ |
评论