在开发板上安装gdb

网上对于在开发板上安装gdb的教程大多都是将开发板的文件系统放在虚拟机主机上,从而通过nfs挂载上去的,主要是针对性能较差开发板,本教程讲解的是如何在开发板上直接安装gdb。

为什么不能直接将pc上交叉编译器中的gdb文件移植过来呢:
因为交叉编译器上的gdb是针对pc上的x86架构编译得到的,而我们需要的是在arm64架构上得到的,这也就是将文件系统放在开发板上的第二个好处。

开发环境:debian10
使用的是瑞芯微的RK3399prod

首先我们要去官网上下载gdb源代码,下面是gdb源码地址:
https://ftp.gnu.org/gnu/gdb/

这里我下载的是最新的gdb-11.2.tar.gz
下载完成后输入指令:

tar -zvxf gdb-11.2.tar.gz

然后进入对应目录下,输入指令:

mkdir build
cd build
../configure --target=aarch64-linux-gnu --host=aarch64-linux-gnu --prefix=/usr/local/aarch64-gdb -v

然后执行编译

make -j4

遇到错误,缺少GMP文件
GMP is missing or unusable
解决方案如下:

apt-cache search GMP

找到相关联的软件,找到libgmp-dev

sudo apt-get install libgmp-dev

遇到错误:提示获取的404找不到

sudo apt-get update

出现inrelease字样,通过翻译知道应该是有冲突。

这里借鉴了如下的思路:下面是网址链接
网址链接

命令如下:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean 
sudo apt-get update

然后再次更新,安装软件,提示成功
然后执行:

sudo make install

在/usr/local/aarch64-gdb/bin目录下得到gdb可执行文件
执行指令:

file gdb

得到:
aarch64-linux-gnu-gdb: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=55593d5d37ed4376cab71a5b099c34b581ff490a, with debug_info, not stripped

这里得到gdb文件就是ARM64位啦。

mv gdb aarch64-linux-gnu-gdb
cp aarch64-linux-gnu-gdb /usr/bin

至此gdb移植完成

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您的问题似乎不完整或不清楚,请提供更具体的信息和详细的上下文。如果您是在使用开发板上的Ubuntu操作系统,并且想要在VSCode中使用GDBGDBServer进行调试,您可以按照以下步骤进行操作: 1. 在Ubuntu中安装GDBGDBServer,您可以使用以下命令: ``` sudo apt-get install gdb gdbserver ``` 2. 在VSCode中安装C/C++插件,该插件可以让您在VSCode中进行C/C++开发和调试。 3. 在您的项目中配置launch.json文件,以便VSCode可以启动GDBGDBServer进行调试。以下是一个示例配置: ``` { "version": "0.2.0", "configurations": [ { "name": "Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/<your_program>", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "setupCommands": [ { "description": "Enable gdbserver", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Start gdbserver", "text": "-target-select remote :<your_port>", "ignoreFailures": false } ], "preLaunchTask": "build" } ] } ``` 在上述配置中,您需要指定您的程序的路径和端口号,以及GDBGDBServer的路径。在启动调试会话之前,您需要确保在开发板上已经启动了GDBServer,并且端口号与launch.json文件中的端口号匹配。 希望这些信息能够帮助您解决问题。如果您需要更多帮助,请提供更具体的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值