【问题标题】:LLDB equivalent to GDB's 'set auto-solib-add on'LLDB 等价于 GDB 的“set auto-solib-add on”
【发布时间】:2021-01-15 13:10:03
【问题描述】:

我正在尝试使用 LLDB/LLDB 服务器远程调试动态加载的共享对象(通过 dlopen)。 我注意到在这种情况下调试符号不会自动加载。

当出于类似目的使用 GDB 时,我使用了“set auto-solib-add on”配置来指示 GDB 新加载的共享对象及其符号将被自动添加/加载。

LLDB 是否有一些等效选项?

【问题讨论】:

    标签: lldb


    【解决方案1】:

    lldb 没有set auto-solib-add off,此行为始终存在。您可以使用 lldb 命令image list <my_dylib_name.dylib> 来查看 lldb 是否收到 dyld 正在加载的图像的通知。通知 lldb 共享库加载的机制非常简单,如果我们没有被告知库加载,我会感到惊讶。从 dylib 获取其调试信息的各种机制更加复杂,很可能那里出了问题。

    【讨论】:

    • 加载调试符号时似乎有问题。我不确定如何执行类似 gdb 命令set debug-file-directoryset solib-search-path 之类的操作
    • lldb 网站上有一个页面:lldb.llvm.org/use/symbols.html 描述了如何在 macOS 上处理调试符号。这可能会有所帮助。
    • 剩下的几行告诉 LLDB 去哪里寻找调试用的符号。 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初始化文件。
    猜你喜欢
    • 2019-07-19
    • 2016-01-30
    • 2013-02-02
    • 2014-09-13
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多