Qemu模拟ARM之gdb调试

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 修改运行时候的变量值

猜你喜欢

转载自blog.csdn.net/wyy626562203/article/details/80161368