Respuestas:
Lo que necesita es nmy su -Dopción:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
Los símbolos exportados se indican con a T. Los símbolos obligatorios que deben cargarse desde otros objetos compartidos tienen un U. Tenga en cuenta que la tabla de símbolos no incluye solo funciones, sino también variables exportadas.
nmsin la -Dbandera.
objdump -T *.so también puede hacer el trabajo
En un MAC, debe usarlo nm *.o | c++filt, ya que no hay ninguna -Copción nm.
Entre otras herramientas ya mencionadas, puede usar también readelf( manual ). Es similar objdumppero va más en detalle. Vea esto para la explicación de la diferencia.
$ 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 pthread_mutex_unlock@GLIBC_2.0 (4)
2: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_destroy@GLIBC_2.0 (4)
3: 00000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
4: 00000000 0 FUNC GLOBAL DEFAULT UND memmove@GLIBC_2.0 (5)
5: 00000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.0 (5)
6: 00000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.0 (5)