gdb的info functions和lldb的image lookup的区别

两个命令都是搜索函数的。

gdb的info functions是在内存中的symbol table查找,结果中的地址是内存里的地址,所以得到结果后,直接b(break,添加断点)这个地址,即可正确加断点。

lldb的image lookup -s是在库文件中查找,结果中的地址是在library中的偏移地址,b这个地址是不能正确break的。

正因为这个区别,gdb会比lldb更快得到结果。

(info functions后面接的是正则表达式, image lookup -s -r要再加上-r才是搜正则表示式, regular expression。)


如果不是为了加断点(当然,还是可以b整个函数签名),那么用lldb更好,因为:

1. 如果使用IDA去分析库文件,那么可以把lldb的结果地址用在IDA中jump to address。

2. 如果是为了确定库文件中是否有某函数,lldb更准确,因为不一定所有库的内容都加载进内存了。

上一篇:获取微信昵称、头像等信息方法


下一篇:高效迁移 HDFS 海量文件到 OSS | 学习笔记