Pregunta

Estoy trabajando en un clon del comando elfdump.

Mi programa funciona bien cuando se ejecuta elfdump -ecps *file* en todos los ejecutables. Sin embargo, cuando ejecuto mi programa en un archivo de biblioteca, por ejemplo libc.so, imprime un número de versión incorrecta para todos los símbolos en la sección .symtab (específicamente todos son cero). He mirado a través de las toneladas de documentación de veces, pero no puedo entender por qué esto está ocurriendo.

Por favor alguien puede dar algún consejo? O, posiblemente, cómo detectar si su biblioteca o no tan solo pude difícil que el código 0 en un?

¿Fue útil?

Solución

Puede determinar si se está ejecutando en contra de una biblioteca compartida mediante la comprobación para ver si el campo es e_type ET_DYN, creo. (Hombre elf (5))

Hay un artículo de Ulrich Drepper que las cubiertas glibc per-versiones de símbolos trucos en ELF. Tal vez hay más información que hay, que usted no ha visto antes. Las páginas del manual en Linux no parecen cubrir la información per-versiones de símbolos en los documentos de ELF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top