目录

三方源码调试

三方共享包分为静态共享包HAR和动态共享包HSP,两种共享包的源码调试方式有所区别,具体请查看以下指导。

HAR源码调试

HAR包的引用存在两个模式,对应的源码调试也有差异:

  • attach调试时需要注意被调试应用的HAR包引用方式,需要保证本地工程引用HAR方式与被attach调试应用引用方式保持一致。
  • CPP调试需要保证so文件附带调试信息,请参考build-profile.json5文件添加strip字段并设置为false。

字节码HAR调试

[h2]C++代码调试

  1. 如果HAP/HSP引用字节码HAR包,同时HAR包中包含C++代码,对该HAR包进行调试,在native调试配置界面中的Symbol Directories页签,点击“+”,添加带调试信息的so文件,so文件在{ProjectPath}/{ModuleName}/build/{product}/intermediates/libs/default/arm64-v8a路径下。

  2. DevEco Studio调试应用时会优先加载配置的so文件,本地so文件包含调试信息时,开发者可以正常调试源码。由于so的源码文件信息为编译时的文件路径,若与本地的源码文件路径不一致时,可以在LLDB Startup Commands页签中添加命令做映射,示例如下。也可以通过选择单个文件关联,具体请参考HAR源码调试。
    settings set -- target.source-map {old-path} {new-path}
    • old-path:编译时的文件路径。
    • new-path:本地的源码文件路径。

[h2]ArkTS源码调试

  • release模式编译的字节码HAR不支持调试。
  • debug模式编译demo工程确保生成sourcemap产物。
  • 引用工程外字节码har的应用,当本地源码所在工程Dual模式同时配置了Symbol Directories和Ets Source Pairs,可在本地源码工程同时attach调试ets及c++断点。

HSP源码调试

如果要调试HSP源码,需要将源码置于本地工程模块下,以引用本地工程的module方式进行调试。