gdb和gdbserver在arm(aarch64)上的构建过程

首先需要确定一个可用的版本,对于aarch64来讲, 7.4的版本configure里没有支持的host,修改起来东西多,而且不能确保可用。一个较低的支持aarch64的版本我已经测试到了,是gdb 8.1

但这个版本也需要修改源代码,参看下边代码的注释部分

//gdb/nat/linux-ptrace.c
//第24、25行注释掉即可

#include "linux-procfs.h"
#include "linux-waitpid.h"
#include "buffer.h"
//#include "gdb_wait.h"
//#include "gdb_ptrace.h"
#ifdef HAVE_SYS_PROCFS_H
#include <sys/procfs.h>
#endif
//gdb/nat/linux-ptrace.h
//在23行后添加一行

struct buffer;

#include "nat/gdb_ptrace.h"

//下边是添加的一行
#include "gdb_wait.h"

#ifdef __UCLIBC__
#if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__))

接下来就是配置和编译了

./configure --prefix=/home/my/local CC=aarch64-buildroot-linux-gnu-gcc --target=aarch64-buildroot-linux-gnu --build=x86_64-linux-gnu --host=aarch64-buildroot-linux-gnu

make
make install

构建完成后,scp复制到arm主板上既可使用,gdbserver主要是用来执行远程调试的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gdbgdbserver是用于调试程序的工具。下面是对它们的介绍: 1. gdb(GNU Debugger)是一个功能强大的调试器,用于调试C、C++、Fortran等编程语言的程序。它可以帮助开发人员在程序运行时跟踪和调试代码,以找出错误和问题。gdb可以在命令行界面中使用,也可以与各种集成开发环境(IDE)集成使用。 2. gdbserver是一个用于远程调试的服务器程序,它允许将gdb连接到运行在远程机器上的程序进行调试。gdbserver在目标机器上运行,并监听一个指定的端口,等待gdb连接。一旦连接建立,gdb就可以通过gdbserver与目标机器上的程序进行交互,包括设置断点、查看变量值、单步执行等操作。 以下是使用gdbgdbserver进行调试的步骤: 1. 在目标机器上运行gdbserver: ```shell gdbserver <host>:<port> <executable> ``` 其中,`<host>`是gdb客户端的IP地址或主机名,`<port>`是gdbserver监听的端口号,`<executable>`是要调试的可执行文件的路径。 2. 在本地机器上运行gdb客户端: ```shell gdb <executable> ``` 3. 在gdb客户端中连接到gdbserver: ```shell target remote <host>:<port> ``` 其中,`<host>`是gdbserver所在的目标机器的IP地址或主机名,`<port>`是gdbserver监听的端口号。 4. 在gdb客户端中进行调试操作,例如设置断点、查看变量值、单步执行等。 请注意,使用gdbgdbserver进行远程调试需要在目标机器上安装gdbserver,并且目标机器和本地机器之间需要网络连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值