ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)
本教程作为gdb/gdbserver编译安装教程的一个补充,教会大家如何使用gdb/gdbserver进行远程调试。

如上图所示,我们需要将编译后的gdbserver上传至目标设备,其上传方式可以通过scp、ftp等。
目标设备作为gdb服务端,宿主机或者主机作为我们的客户端。
在待调试设备中找到gdbserver程序
/*cd到包含gdbserver的目录*/
./gdbserver 192.168.100.1:1234 ./program1 [参数1]
参数说明:192.168.100.1:目标设备的IP,可通过ifconfig等命令查看。1234:自定义绑定目标设备的端口号。program1 :目标设备中待调试的程序。

二、启动主机客户端gdb
在主机中找到aarch64-linux-gun-gdb程序所在的目录
 
 启动主机gdb
./aarch64-linux-gun-gdb

 gdb中以下命令来连接设备中的gdbserver
target remote 192.168.100.1:1234

连接上后,正常使用gdb命令进行调试。
三、gdb常见命令
- 打断点 - break *address ,示例:break *0x00346512
- b *address ,示例:b *0x00346512
 
- 查看所有断点 - info breakpoints
 
- 删除断点 - delete [breakpoint-number],示例:delet 1
- d [breakpoint-number],示例:d 1
 
- 执行到断点或者程序结束 - continue
- c
 
- 单步执行,进入函数内部 - step
- s
 
- 单步执行,不进入函数内部 - next
- n
 
- 执行到当前函数结束 - finish
 
- 查看所有寄存器的值 - info registers
- i r
 
- 查看特点寄存器的值 - info registers eax
- i r eax
 
- 查看指定内存的值(查看从地址 0x7fffffffe000 开始的16个字节的16进制值) - x/16bx 0x7fffffffe000
 
- 显示调用栈信息 - backtrace
- bt