【发布时间】:2021-01-15 13:10:03
【问题描述】:
我正在尝试使用 LLDB/LLDB 服务器远程调试动态加载的共享对象(通过 dlopen)。 我注意到在这种情况下调试符号不会自动加载。
当出于类似目的使用 GDB 时,我使用了“set auto-solib-add on”配置来指示 GDB 新加载的共享对象及其符号将被自动添加/加载。
LLDB 是否有一些等效选项?
【问题讨论】:
标签: lldb
我正在尝试使用 LLDB/LLDB 服务器远程调试动态加载的共享对象(通过 dlopen)。 我注意到在这种情况下调试符号不会自动加载。
当出于类似目的使用 GDB 时,我使用了“set auto-solib-add on”配置来指示 GDB 新加载的共享对象及其符号将被自动添加/加载。
LLDB 是否有一些等效选项?
【问题讨论】:
标签: lldb
lldb 没有set auto-solib-add off,此行为始终存在。您可以使用 lldb 命令image list <my_dylib_name.dylib> 来查看 lldb 是否收到 dyld 正在加载的图像的通知。通知 lldb 共享库加载的机制非常简单,如果我们没有被告知库加载,我会感到惊讶。从 dylib 获取其调试信息的各种机制更加复杂,很可能那里出了问题。
【讨论】:
set debug-file-directory 和set solib-search-path 之类的操作
settings set target.inline-breakpoint-strategy always settings append target.exec-search-paths <PATH>/objdir-android-opt/toolkit/library/build settings append target.exec-search-paths <PATH>/objdir-android-opt/mozglue/build see here 还发现了一个有趣的脚本来生成带有solib搜索路径here的lldb初始化文件。