debugging 如何通知lldb调试器源代码在哪里?

eaf3rand  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(201)

我有一个使用/usr/lib/libcrypto.0.9.8.dylib的可执行文件。我已经(或多或少)找到了该库中的一些断点,我想更好地理解它们。
然而,我不记得这是系统上的股票openssl,或者我后来安装了它(不这样认为,很肯定的是,自制程序会把它放在其他地方)。
这是针对macOS莫哈韦(10.14)的。如果调试符号在libcrypto中被删除了,我不确定我是否知道如何检查(nm?)。但是,我已经下载并解压了源代码(与版本匹配)。
有没有办法配置lldb,让它显示源代码而不是汇编语言?如果调试符号已经被删除了(我认为没有检查),你能做到吗?
我正试图做我自己的研究,但我甚至不知道我知道什么关键字搜索呢。

zphenhs4

zphenhs41#

达尔文上的工具不会将调试信息存储在二进制文件中,而是存储在一个单独的包(dSYM)中。因此,如果您没有一个用于libcrypto的dSYM,那么您就没有它的调试信息,也没有办法重建代码-〉源代码Map。
一些发行版有调试包和包含dSYM的发行包。lldb使用链接器计算的通用UUID将dSYM匹配到二进制。您可以使用命令dwarfdump --uuid <PATH TO BINARY>打印UUID,然后查看您从何处获得的库是否保存了该dSYM。
但是如果找不到dSYM,就无法进行任何源代码级调试。

相关问题