Frage

Ich arbeite an einem Klon des elfdump Befehls.

Mein Programm funktioniert gut, wenn elfdump -ecps *file* auf alle ausführbaren Dateien ausgeführt wird. Allerdings, wenn ich mein Programm auf einer Bibliotheksdatei ausführen, sagt sie libc.so, druckt es eine falsche Versionsnummer für alle Symbole in dem .symtab Abschnitt aus (genauer gesagt sind sie alle gleich Null). Ich habe über die Dokumentation Tonnen mal gesucht, aber ich kann nicht herausfinden, warum dies geschieht.

Kann jemand bitte ein paar Tipps geben? Oder vielleicht, wie, ob sein zu erkennen, eine Bibliothek oder nicht so konnte ich nur schwer Code eine 0 in?

War es hilfreich?

Lösung

Sie können bestimmen, ob Sie gegen eine gemeinsam genutzte Bibliothek laufen durch Überprüfen Sie, ob das Feld E_TYPE ET_DYN ist, glaube ich. (Mann elf (5))

Es gibt einen Artikel von Ulrich Drepper rel="nofollow dass Abdeckungen die glibc pro-Symbol Tricks in ELF Versionierung. Vielleicht gibt es dort weitere Informationen, die Sie vorher nicht begegnet sind. Der Man-Pages auf Linux erscheint nicht die pro-Symbol Versionsinformationen in der ELF-Dokumentation zu decken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top