向openHarmony设备添加gdb调试工具

1. 下载gdb源码

国内从官网下载源码比较慢,可以从清华的镜像网站(清华大学开源软件镜像站 | Tsinghua Open Source Mirror)上下载。下载地址:

Index of /gnu/gdb/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

选择想要的版本即可。

2. 下载交叉编译工具
sudo apt install gcc-arm-linux-gnueabi
sudo apt install g++-arm-linux-gnueabi
sudo apt install gcc-aarch64-linux-gnu
sudo apt install g++-aarch64-linux-gnu
3. 搭建编译环境

将下载好的gdb-xxx.tar.gz上传到Linux编译环境上对应目录,进行解压

tar -zxvf gdb-xxx.tar.gz

解压后进入gdb目录,并创建build目录

cd gdb-xxx
mkdir build

然后在build目录下生成编译gdb的Makefile文件

32位:

cd build
CC="/usr/bin/arm-linux-gnueabi-gcc" CXX="/usr/bin/arm-linux-gnueabi-g++" ../configure LDFLAGS=-static --prefix=$HOME/glib^C2-2.6 -target=arm-linux-gnueabi --host=arm-linux-gnueabi

64位:

cd build
CC="/usr/bin/aarch64-linux-gnu-gcc" CXX="/usr/bin/aarch64-linux-gnu-g++" ../configure  --target=aarch64-linux-gnu --host=aarch64-linux-gnu

其中:

CC/CXX为gcc/g++交叉编译工具的路径,使用apt install安装后,默认在/usr/bin目录,可以使用which gcc/which g++命令查询具体路径。

执行完以上命令后,会在build目录下生成gdb的Makefile文件。然后执行make命令进行编译即可。编译好的二进制文件保存在build/gdb目录下。

4. 去除调试信息

去掉调试信息,可以大幅缩小二进制文件大小,否则可能因设备空间不足导致无法推送到设备上。

aarch64-linux-gnu-objcopy --strip-debug gdb/gdb

5. 推送gdb文件到目标设备

使用hdc连接设备,执行如下命令推送gdb到设备上:

hdc shell mount -o remount,rw /
hdc file send gdb /bin/
chmod +x /bin/gdb
hdc shell mount -o remount,rw /
6. 推送gdb依赖的so到目标设备

对于64位gdb,使用LDFLAGS=-static编译时会报错,目前暂未找到解决方案,需要将gdb运行时所需要的动态链接库拷贝到目标设备上,否则gdb执行时会因找不到动态链接库报错。这些库在/usr/aarch64-linux-gnu/lib下可以找到

hdc file send ld-linux-aarch64.so.1 /lib/
hdc file send libstdc++.so.6 /lib/
hdc file send libstdc++.so.6.0.30 /lib/
hdc file send libm.so /lib/
hdc file send libm.so.6 /lib/
hdc file send libgcc_s.so.1 /lib/
hdc file send libc.so /lib/
hdc file send libc.so.6 /lib/
hdc shell chmod +x /lib/*
7. 使用gdb调试应用

以上步骤执行成功后,就可以在openHarmony设备上使用gdb调试程序了。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值