单步调试HSP中的CPP源码

单步调试HSP中native代码

HarmonyOS
2024-05-28 22:19:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
post_cj

使用的核心API

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-source-code-debugging-0000001771296574#ZH-CN_TOPIC_0000001836920097__li13314105365417

核心代码解释

调试HSP,不需要设置HSP的Debug Type, 只需要设置对应的HAP包的Debug Type为

Dual(ArkTS/JS + Native)

实现效果

在ArkTS侧打入断点

进入该处的断点后,点击单步调试(Step Into)进入Native侧断点。

当进入时,没进入到源码,而是到了Disassembly的汇编,但是没有出现select file的按钮。如:

在lldb窗口输入bt

只有函数名没有源码位置说明so不是debug版本(进到汇编并且没有显示select file 的话,就表明没有调试信息)可以使用llvm-readelf.exe -S xxx.so来查看是否为debug版本信息。

这里可以看到,so里面不带调试信息

这里看下携带调试信息的场景

需要提供下build-profile.json5和CMakeLists.txt,可以看到

CMakeLists.txt中target_link_libraries添加了-s参数,此配置优先级较高,导致无法生成带debug信息的so,进而导致无法使用IDE自带的调试工具。

解决方案:

不在此处配置-s参数,改为在build-profile.json5中,release选项中启用strip=true

分享
微博
QQ
微信
回复
2024-05-29 23:32:48
相关问题
支持调试本地源码无法编译so
340浏览 • 1回复 待解决
无法读取到hsp模块rawfile文件
623浏览 • 1回复 待解决
C++同步调ArkTS里面的方法
376浏览 • 1回复 待解决
访问HSPArkUI组件访问与开发
413浏览 • 1回复 待解决
从HAP拆包,如何区分是HAR和HSP
756浏览 • 1回复 待解决
求大佬告知如何访问hsp页面?
325浏览 • 1回复 待解决
hsp子模块如何加载悬浮窗页面
457浏览 • 1回复 待解决
Hi3861下使用CPP代码错误
3913浏览 • 1回复 待解决