使用eclipse远程调试openharmony C++

  openharmony通过hilog日志定位问题方法在复杂场景和跨模块状况下定位很费劲。之前一直是在linux环境下使用eclipse做c++开发工作,所以想着用eclipse做openharmony c++远程调试。

环境准备

rk3568开发板(arm架构,openharmony运行环境)

ubuntu22.04.03带UI桌面系统(x86-64架构,openharmony编译环境,eclipse+CDT用于c++开发,gdb-multiarch用于跨架构远程调试)

1编译带DEBUG信息项目

接下来以企业设备管理包做样例讲解

openharmony+rk3568开发板 企业设备管理项目编译,刷镜像,运行,代码上库请参照OpenHarmony-标准设备系统代码操作梳理_openharmony 标准设备系统代码操作梳理

要编译带有debug信息的so文件,需要加上指令--gn-args="is_debug=true"

完整编译指令./build.sh --product-name rk3568 --ccache --build-target enterprise_device_management   --gn-args="is_debug=true"

然后将so文件推送到开发板上去

hdc shell mount -o remount,rw /
hdc file send .\libedmservice.z.so /system/lib/
hdc file send .\libedm_commom.z.so /system/lib/
hdc file send .\libplugin_kits.z.so /system/lib/
% 推送部分或者所有so文件 %
hdc file send .\librestrictions.z.so /system/lib/module/enterprise/

2 开发板被调试准备

开发板需要安装gdbserver,gdbserver可以去https://codeload.github.com/hugsy/gdb-static/zip/refs/heads/master下载

这边开发板是arm架构的,使用以下指令安装gdbserver

hdc shell mount -o remount,rw /
hdc file send .\gdbserver-7.10.1-arm6v /bin/gdbserver
hdc shell chmod 777 /bin/gdbserver

3 ubuntu桌面系统调试准备

安装gdb-multiarch(直接用gdb,跨架构调试可能会报错)

导入项目

通过配置paths and Symbols来配置头文件搜索目录

4 调试

前提:开发板与ubuntu桌面系统处于同一个网络,相互可以ping通。(开发板是支持wifi,可以手机搭建热点)

开发板运行以下指令监听1234端口,允许远程调试

eclipse远程调试配置

注意这里要选择下面那一个

点击Debug按钮开始调试后,经过几分钟加载符号信息,终于附加成功

下断点,操作开发板上手工测试demo,使程序正好运行到断点所在地方

断点断住了,堆栈,局部变量,寄存器,汇编窗口工作正常。

其他

这里有其他人eclipse+cdt远程调试教程,可以参考,只需要把调试配置中gdb改为gdb-multiarch即可

EclipseCDT远程交叉编译&远程单步调试&基于makefile例程

VSCode也可以远程调试,这里是我launch.json调试配置

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(gdb) 启动",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/../../../out/rk3568/customization/enterprise_device_management/libedmservice_kits.z.so",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}/",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "miDebuggerPath": "/usr/bin/gdb-multiarch",
      "miDebuggerServerAddress": "172.20.10.10:1234"
    }
]
}

VSCode调试教程可参考

VSCode远程调试linux

【OpenHarmony快速入门】使用VSCode编写程序源码以及基础设置

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值