Pada MAC, Anda perlu menggunakan nm *.o | c++filt
, karena tidak ada -C
opsi di nm
.
Yang Anda butuhkan adalah nm
dan -D
-nya opsi:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
Sumbol yang diekspor ditandai dengan T
. Simbol wajib yang harus dimuat dari objek bersama lainnya memiliki U
. Perhatikan bahwa tabel simbol tidak hanya menyertakan fungsi, tetapi juga variabel yang diekspor.
Lihat nm
halaman manual untuk informasi lebih lanjut.
Di antara alat lain yang telah disebutkan, Anda juga dapat menggunakan readelf
(manual). Mirip dengan objdump
tetapi lebih ke detail. Lihat ini untuk penjelasan perbedaannya.
$ 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
juga dapat melakukan pekerjaan itu