目录

在个别C++动态库中无法下断点单步调试

问题现象

在个别C++ so库中断点无效,编译配置Debug、not stripped。

代码里面强制插入__builtin_trap();或者asm volatile ("brk #0");可以生效,但是单步运行就会失效。

解决方案

该动态so库是在linux虚拟机上编译的,项目运行在windows电脑上,毕昇和HarmonyOS SDK工具链编译行为不一致,路径有差异,导致毕昇的cef映射正确,HarmonyOS工具链编译的so映射错误,需要在IDE上配置LLDB Startup Commands路径映射。

  1. 要确认.so文件中的源代码路径,即编译so库的机器的路径:/target/path/src。
  2. 在IDE上的对应路径:/host/path/src。
    settings set target.source-map /target/path/src /host/path/src