如何调试引用的外部so
已有应用hap包entry-default-signed.hap,hap包包名com.example.soliba 要调试的三方源码so(需携带调试信息)liblocalso.so和其hello.cpp源码文件
HarmonyOS
赞
收藏 0
回答 1
相关问题
HSP/HAR包中如何引用外部编译的so库文件
3379浏览 • 1回复 待解决
如何引用其他工程编译的so
1460浏览 • 0回复 待解决
HarmonyOS module如何引用so文件
608浏览 • 1回复 待解决
HarmonyOS napi_bridge层下沉到外部.so,然后引入外部.so的情况需要怎么放到har里面去
444浏览 • 1回复 待解决
通过configuration配置调试so
1279浏览 • 1回复 待解决
HarmonyOS so库的正确引用方式
1005浏览 • 1回复 待解决
HarmonyOS 引用so库报红
849浏览 • 1回复 待解决
HarmonyOS har包引用so问题
1339浏览 • 1回复 待解决
HarmonyOS 引用so库程序崩溃
790浏览 • 1回复 待解决
支持调试本地源码无法编译的so
1370浏览 • 1回复 待解决
HarmonyOS 使用OHAudio 需要引用哪个so包?
748浏览 • 1回复 待解决
通过configuration配置调试本地源码无法编译的so
1270浏览 • 1回复 待解决
#鸿蒙学习大百科#HSP/HAR如何引用so文件?
1054浏览 • 1回复 待解决
HarmonyOS C++工程 导入外部so 有开发指南吗?
1283浏览 • 1回复 待解决
HarmonyOS A工程中编译好的so文件,如何在B工程中拷贝引用
735浏览 • 1回复 待解决
HarmonyOS napi开发是如何引用第三方so库
798浏览 • 1回复 待解决
Har 中的cmakelist.txt 如何引用V8引擎的 V8.so
1604浏览 • 1回复 待解决
HarmonyOS 自定义UI组件如何在外部引用到自定义UI组件里得方法
929浏览 • 1回复 待解决
BUILD.gn引用第三方so文件报错undefined symbol
5714浏览 • 0回复 待解决
docker 如何挂载外部文件?
5708浏览 • 1回复 待解决
调试模式下 报Cause: Can't find any .so file in current module Solution
2675浏览 • 1回复 待解决
编译出so,推到klv的/system/lib64/module下,在arkts处引用,undefined
2081浏览 • 1回复 待解决
有了代码签名特性后,开发者的so文件在调试,发布等阶段该如何部署
2964浏览 • 1回复 待解决
应用侧,引用了java的 paho mqtt,调试时出现端口问题,谁能帮忙解决下
6465浏览 • 1回复 待解决
HarmonyOS 如何查看HarmonyOS so库的符号,可以输出so的符号
701浏览 • 1回复 待解决
本地环境构造
已有应用hap包entry-default-signed.hap,hap包包名com.example.soliba 要调试的三方源码so(需携带调试信息)liblocalso.so和其hello.cpp源码文件
详细步骤
1、基于本地C++代码构建生成新so库。demo见solibA; solibA做了如下操作:
a、新建solibA工程,新建C++模块取名为localso;在localso的hello.cpp中定义方法并打多个断点;build编译生成so,路径solibA\localso\build\default\intermediates\libs\default\arm64-v8a
b、将arm64-v8a文件夹复制到entry-libs下,即entry\libs\arm64-v8a\liblocalso.so
c、在entry的build-profile.json5的buildOption下设置编译选项,"abiFilters" : ["arm64-v8a"],即 "externalNativeOptions": { "path": "./src/main/cpp/CMakeLists.txt", "arguments": "", "cppFlags": "", "abiFilters" : ["arm64-v8a"] }
d:entry增加头文件apple.h,写入方法 int getvalue_local(); int add_local(int a, int b);
e:entry的hello.cpp调用方法 #include "apple.h" int value_b = getvalue_local(); value_b += add_local(1,2) + add_local(3, 4);
f、签名,编译entry,在solibA\entry\build\default\outputs\default目录下生成hap包entry-default-signed.hap
2、通过命令将entry-default-signed.hap运行到设备并拉起,参考 hdc install entry-default-signed.hap hdc shell aa start -a EntryAbility -b com.example.soliba
3、打开demo1工程 demo1做了如下操作
a、在entry的build-profile.json5下设置编译选项,"abiFilters" : ["arm64-v8a"] (arm64-v8a代表64位,对应原型机和部分rk的设备,如果编译类型不一致,编译会报错;armeabi-v7a代表32位,根据设备实际系统位数配置)
b、添加三方so库到demo1\entry\libs\arm64-v8a\liblocalso.so c:将源码文件hello.cpp拖到demo1中打开,并在相关行打多个断点
4、demo1工程选中entry,build编译,签名,点击attach,勾选Show all processes,选择com.example.soliba,OK;
设备上点击控件触发调用关系,会打开源码文件即localso的hello.cpp,可进入断点进行调试;点Step Over执行到下一行、点Resume Program执行到下一个断点、点Step Into进到汇编。