首先需要确定一个可用的版本,对于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主要是用来执行远程调试的