Qemu模拟ARM之gdb调试
系统:Ubuntu16.04.4 32bit
交叉编译器:arm-linux-gnueabihf-gcc
VMware:VMware Workstation 14 Pro
u-boot:u-boot-2018.03
linux:linux-4.16.2
1.调试uboot
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot -gdb tcp::2233 -S
卡在这等待连接
宿主机gdb连接
arm-linux-gnueabihf-gdb u-boot
输入指令连接远程调试
(gdb) target remote : 2233
2.调试linux
操作更调试uboot一样
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel vmlinux -gdb tcp::2233 -S
arm-linux-gnueabihf-gdb vmlinux
(gdb) target remote : 2233
3.gdb简单调试命令
next(n):下一部
step(s):单步进入
bt 列举函数栈帧
print 查看变量或者内存的值
break 行号或者函数名:下断点
info breakpoints 查看当前断点信息
delete 清除所有断点
continue (c)运行到下一个断点
print /x var 16进制显示(var)值
print可以指定显示的格式,这里用’/x’表示16进制的格式。
可以支持的变量显示格式有:
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
print x=4 修改运行时候的变量值