In modernen Linux sind fast alle Objekte in zwei Teile (zwei Dateien) abgestreift und aufgeteilt. Die erste ist selbst ausführbar und die zweite ist Debug-Symbole, die aus der ursprünglichen ELF entfernt sind. Solche Dateien werden mitWie man den Streifen des objcopy mit nur-keep-debug umkehrt?
erstelltobjcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Wie kann ich binary
und binary.dbg
in ELF-Datei zusammenführen info mit dem Debuggen? Ich möchte unausgeschnittene, ursprüngliche Binärdateien wiederherstellen. Es kann nicht Byte-zu-Byte gleich dem Original sein, aber es muss Debug-Symbole enthalten.
PS Ja, ich weiß über gnu.debuglink
Abschnitt, aber es funktioniert nicht für einige Debugger (etnus) und Disassembler (objdump können keine Symbole Info wiederherstellen)
Es gibt das Dokument: http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html "*' eu unstrip "kombiniert stripped Dateien mit separaten Symbolen und Debug-Informationen. *" und das ist die Homepage https://fedorahosted.org/elfutils/ und das ist die Quelle https://git.fedorahosted.org/cgit/elfutils.git/tree/ src/unstrip.c "Kombinieren Sie entkernte Dateien mit separaten Symbolen und Debug-Informationen. Copyright (C) 2007-2012, 2014, 2015 Red Hat, Inc ... Roland McGrath". Wenn ich "program.bin" als normales ELF und "program.dbg" nur mit Debug-Informationen habe, wie soll ich 'eu-unstrip' starten und welche Datei wird geändert? – osgx
Basierend auf meiner Verwendung, führt es die Binärdatei in die Debug-Symbole zusammen. Wenn Sie program.dbg und program.bin haben, dann fügt 'eu-unstrip program.bin program.dbg' das Bin in die dbg-Datei ein. Das Umkehren der Parameter führt zu Fehlern. – lyngvi
Ich habe keinen Zugriff auf Elfutils, sondern nur auf Binutils. Ist es möglich mit objcopy --add-section o.ä. – sunil