[lldb-dev] finding the symbol dependencies of a bundle, like dyldinfo -lazy_bind -export

Jason E. Aten j.e.aten at gmail.com
Sat Mar 31 23:02:50 PDT 2012


Dear LLDB enthusiasts,

I'm wondering if I can use the lldb library/libraries to replace the
certain code running on OSX that now returns two lists of symbols-- similar
to the output of (dyldinfo -lazy_bind -exports <bundlefile>); i.e. I need
to list the symbols imported and exported by a binary shared object or
bundle.

My hope was that by using an lldb library, I would be able to use the same
client code on OSX as on linux. (The linux version of the code currently
uses libbfd and libdld to do the same thing, but the later is getting
little love/maintenance).

I'm looking through include/lldb/, as it seems like lldb would need this
same info (imported symbol list, and exported symbol list for a Mach-O
file) to function, but it's not clear which API to use.  All
suggestions/pointers to example code in lldb would be welcome!

Thank you.
Jason

# In case it is unclear what dyldinfo does, here is an example: (but I only
need the symbol names; not the addresses or segments or sections):

$ file /tmp/sample_bundle
/tmp/sample_bundle: Mach-O 64-bit bundle x86_64

$dyldinfo -lazy_bind -export /tmp/sample_bundle

lazy binding information (from lazy_bind part of dyld info):
segment section          address    index  dylib            symbol
__DATA  __la_symbol_ptr  0x00001030 0x0000 flat-namespace   __mm_pop_chunk
__DATA  __la_symbol_ptr  0x00001038 0x0015 flat-namespace   _dh_define
export information (from trie):
0x000008A0  _C_ipair
0x00000920  _init_ipair
0x00000BC0  _C_iprot
0x00000C40  _C_ipi2
0x00000CC0  _C_ipi1
0x00001040  _K_ipair_R43808f40
0x00001160  _K_ipi1_R5cb4475d
0x00001260  _K_ipi2_R5cb4475d
0x00001360  _K_iprot_Rfc8fe739
0x00001460  _majver_ipair
0x00001464  _minver_ipair
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20120331/5b21f0a8/attachment.html>


More information about the lldb-dev mailing list