Línea de comando para ver los contenidos Módulo de objetos compartidos(lib*.so)
linux shared-objects (3)
¿Cuál es la línea de comando para ver los contenidos de un módulo de objeto compartido (lib * .so)?
Me gusta como usamos:
ar -t lib*.a
para archivos (lib * .a) y muestra todos los archivos de objeto en la biblioteca.
EDIT1
Ejemplo
ar -t lib*.a
me da una pantalla:
activo.o
sldep.o
Creo que nm -D
es lo que estás buscando.
$ nm -D /usr/lib/libpng.so
...
00000000000058f0 T png_reset_zstream
000000000000d420 T png_save_int_32
000000000000d450 T png_save_uint_16
000000000000d3f0 T png_save_uint_32
0000000000007810 T png_set_IHDR
0000000000007500 T png_set_PLTE
000000000000ce20 T png_set_add_alpha
0000000000006670 T png_set_asm_flags
0000000000006970 T png_set_bKGD
000000000001a740 T png_set_background
...
El comando nm -D
enumera los símbolos dinámicos de su biblioteca compartida, que parece ser exactamente lo que desea.
use nm -D --defined-only libname.so
para obtener los nombres de los símbolos de su biblioteca dinámica.
El --defined-only
muestra solo el símbolo que está definido en estos archivos, y no referencias a funciones externas.
Una alternativa es usar objdump y capturar solo los símbolos en la sección de texto:
objdump -T /usr/lib/libjpeg.so | grep text
...
0001b5c0 g DF .text 00000016 Base jdiv_round_up
00003730 g DF .text 00000417 Base jpeg_set_colorspace
0000cda0 g DF .text 000002de Base jpeg_consume_input
00002b30 g DF .text 00000023 Base jpeg_abort_compress
00003b50 g DF .text 000000b6 Base jpeg_default_colorspace
00002810 g DF .text 00000067 Base jpeg_suppress_tables
00004110 g DF .text 00000130 Base jpeg_add_quant_table
000100c0 g DF .text 0000011f Base jpeg_save_markers
...