Android下为了查看so的导出函数,有两种方法。
nm -D ffmpeg.so
objdump -tT ffmpeg.so
这里推荐第二种方法, 因为遇到问题相对好查,nm在google里稍难匹配到你要的意思。
下面试使用objdump后, 每一行和每一列的数据的意义:
ibcrypto.so: file format elf32-littlearm
SYMBOL TABLE:
00000000 l df *ABS* 00000000 crtbegin_so.c
0003cd20 l F .text 00000010 __on_dlclose
0003cd34 l F .text 00000004 __on_dlclose_late
0000018c l .note.android.ident 00000000 ndk_build_number
0000014c l .note.android.ident 00000000 ndk_version
00000134 l O .note.android.ident 00000098 note_android_ident
COLUMN ONE: the symbol's value
COLUMN TWO: a set of characters and spaces indicating the flag bits that are set on the symbol. There are seven groupings which are listed below:
group one: (l,g,,!) local, global, neither, both.
group two: (w,) weak or strong symbol.
group three: (C,) symbol denotes a constructor or an ordinary symbol.
group four: (W,) symbol is warning or normal symbol.
group five: (I,) indirect reference to another symbol or normal symbol.
group six: (d,D,) debugging symbol, dynamic symbol or normal symbol.
group seven: (F,f,O,) symbol is the name of function, file, object or normal symbol.
COLUMN THREE: the section in which the symbol lives, ABS means not associated with a certain section
COLUMN FOUR: the symbol's size or alignment.
COLUMN FIVE: the symbol's name.
本文同步分享在 博客“oncealong”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。