当前位置: 首页 > article >正文

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

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

http://www.kler.cn/a/388295.html

相关文章:

  • void * 指针与整数进行加减运算
  • 从0开始深度学习(28)——序列模型
  • 【考研数学:高数2】数列极限
  • 大语言模型在序列推荐中的应用
  • Mysql数据类型面试题15连问
  • 国标GB28181视频平台EasyCVR私有化部署视频平台对接监控录像机NVR时,录像机“资源不足”是什么原因?
  • DataFrame
  • Spring高手之路26——全方位掌握事务监听器
  • 第02章 CentOS基本操作
  • 腾讯云服务器到期网站迁移到新服务器参考指南
  • IMS高压发生器维修高压电源维修XRG100/1000
  • Spark的Shuffle过程
  • 【西门子官方车轨级S7-1500F安全PLC标准 SICAR架构应用实例】
  • 软件定义网络(SDN)在企业网络中的应用
  • 什么是python爬虫?
  • HashMap(深入源码追踪)
  • 005.精读《B-Tree vs LSM-Tree》
  • Linux 内核中断描述符 (irq_desc) 的初始化与动态分配机制详解
  • vue全家桶都有哪些?
  • C++ STL CookBook 6:STL Containers (I)
  • web语义化
  • leetcode hot100【LeetCode 79.单词搜索】java实现
  • 数据库基础(5) . DCL
  • 笔记整理—linux驱动开发部分(7)misc类设备(杂项设备)
  • nginx的相关命令
  • Nginx(编译)+Lua脚本+Redis 实现自动封禁访问频率过高IP