ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)

本教程作为gdb/gdbserver编译安装教程的一个补充,教会大家如何使用gdb/gdbserver进行远程调试。

如上图所示,我们需要将编译后的gdbserver上传至目标设备,其上传方式可以通过scp、ftp等。

目标设备作为gdb服务端,宿主机或者主机作为我们的客户端。

在待调试设备中找到gdbserver程序

c 复制代码
/*cd到包含gdbserver的目录*/
./gdbserver 192.168.100.1:1234 ./program1 [参数1]
python 复制代码
参数说明:
	192.168.100.1:目标设备的IP,可通过ifconfig等命令查看。
	1234:自定义绑定目标设备的端口号。
	program1 :目标设备中待调试的程序。

二、启动主机客户端gdb

在主机中找到aarch64-linux-gun-gdb程序所在的目录

启动主机gdb

bash 复制代码
./aarch64-linux-gun-gdb

gdb中以下命令来连接设备中的gdbserver

bash 复制代码
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
相关推荐
Linux-lucky1 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默1 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk81632 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&4 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙9784 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW4 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
陈希1236 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农9 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
byte轻骑兵10 小时前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮10 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习