MAC では、nm *.o | c++filt
を使用する必要があります 、 -C
がないため nm
のオプション .
必要なのは nm
です とその -D
オプション:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
エクスポートされたサムボールは T
で示されます .他の共有オブジェクトからロードする必要がある必須シンボルには U
があります .シンボル テーブルには関数だけでなく、エクスポートされた変数も含まれていることに注意してください。
nm
を参照してください 詳細については、マニュアル ページを参照してください。
readelf
も使用できる他の既に述べたツールの中で (マニュアル)。 objdump
に似ています しかし、さらに詳しく説明します。違いの説明については、こちらを参照してください。
$ readelf -sW /lib/liblzma.so.5 |head -n10
Symbol table '.dynsym' contains 128 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (4)
2: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (4)
3: 00000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
4: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
5: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
6: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
objdump -T *.so
仕事をするかもしれません