Supongamos que tenemos una biblioteca compartida llamada libtest.so, hay una función "foo" en ellanm vs "readelf -s"
utilizar la tira a los descartes todos los símbolos de libtest.so
$strip libtest.so
es así, ahora si usamos:
$nm libtest.so
lo que imprimirá:
nm: libtest.so: no hay símbolos
pero si usamos:
$readelf -s libtest.so
función foo todavía se puede ver a partir de su resultado:
...
10: 5 000005dc FUNC global predeterminada 12 _Z3foov
...
también podemos usar cadenas de comandos para verificarlo:
$strings libtest.so
...
_Z3foov
...
aquí es mi pregunta, ¿por qué no dar nm resultado para libtest.so rayas?
Gracias
Su nombre de usuario es asombroso. Así que, básicamente, si vinculo una biblioteca estática con un binario en tiempo de compilación, los símbolos de la biblioteca aparecerán con nm, pero si hago un enlace dinámico, los símbolos aparecerán en readelf -S y nm -D, ¿correcto? – acib708
@ AlejandroCárdenas No creo que tu comprensión sea del todo correcta. Además, existe una diferencia entre 'readelf -s' y' readelf -S'. Probablemente sea mejor hacer una pregunta por separado. –
Sí, lo siento, quise decir readelf -s. Bueno, la pregunta principal sigue siendo, no entiendo la diferencia entre nm y readelf -s ya que me dices que lo que entendí es incorrecto. ¿Te gustaría elaborar un poco más, por favor? – acib708