通过configuration配置调试本地源码无法编译的so

要调试的三方源码so:libnativelib1.so

源码文件:calculator2.cpp

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

本地环境构造

要调试的三方源码so:libnativelib1.so

源码文件:calculator2.cpp

1、通过调用llvm工具分析so中源码路径

执行

cd D:\sdk\harmony\10\native\llvm\bin

llvm-objdump.exe -lS D:\ceshi\tiaoshi\demo\so_lib\libnativelib1.so

查看结果有 D:/CppStepInto/nativelib1/src/main/cpp/calculator1.cpp

(mac:

cd /Users/ceshi/Library/Huawei/Sdk/single/harmony/openharmony/10/native/llvm/bin/

./llvm-objdump -lS /Users/ceshi/DevEcoStudioProjects/lib_so/maclib/libnativelib1.so

查看结果有:

/Users/ide-debug/Desktop/devecos/20230818/400412/solibA/library/src/main/cpp/hello.cpp

配置LLDB Startup Commands:

entry-configration-debugger-选择native only或native+js-LLDB Startup Commands:

settings insert-before target.source-map 0 "/Users/ide-debug/Desktop/devecos/20230818/400412/solibA/library/src/main/cpp/hello.cpp" "/Users/ceshi/DevEcoStudioProjects/lib_so/calculator2.cpp"

配置Symbol Directories:

/Users/ceshi/DevEcoStudioProjects/lib_so

)

2、配置映射

a、增加so中源码路径与本地代码映射关系 打开configuration->Debugger->LLDB Startup Commands,配置:

settings insert-before target.source-map 0 [二进制中的源码路径] [本地代码路径]

如:settings insert-before target.source-map 0 "D:/diaoyan/CppStepInto/nativelib1/src/main/cpp/calculator1.cpp" "D:/ceshi/tiaoshi/demo/so_lib/calculator2.cpp"

b、切到Symbol Directories,配置calculator2.cpp路径:

D:/ceshi/demo/so_lib

3、将calculator2.cpp拖到demo4中打开,并在相关行打多个断点

4、命令安装并拉起entry-default-signed.hap(即run拉起demo3)

hdc install entry-default-signed.hap

hdc shell aa start -a EntryAbility -b com.example.demo3

5、demo4 工程在entry的build-profile.json5下设置编译选项,"abiFilters" : ["arm64-v8a"],选中entry,Bulid Hap(s)编译,签名,点击attach,勾选Show all processes,选择com.example.demo3进程,OK;

设备上触发调用关系,进入calculator2.cpp断点;点Step Over执行到下一行、点Resume Program执行到下一个断点;

分享
微博
QQ
微信
回复
2024-05-29 23:28:20
相关问题
通过configuration配置调试so
383浏览 • 1回复 待解决
支持调试本地源码无法编译so
369浏览 • 1回复 待解决
在Camkelist配置so后,编译报错
304浏览 • 1回复 待解决
OpenHarmony dcts无法编译通过
2259浏览 • 0回复 待解决
native如何通过命令行编译so
1332浏览 • 1回复 待解决
如何调试引用外部so
384浏览 • 1回复 待解决
如何配置模块源码路径
309浏览 • 1回复 待解决
单步调试HSP中CPP源码
407浏览 • 1回复 待解决
如何配置本地工程机?
4207浏览 • 1回复 已解决
如何编译鸿蒙使用libcurl.so
401浏览 • 1回复 待解决
如何编译底层so有懂吗?
1168浏览 • 1回复 待解决
编译so时如何去除符号表
1145浏览 • 1回复 待解决
本地模拟器不支持断点调试????
1207浏览 • 1回复 待解决