„Der Objdump ist ein Befehlszeilen-Dienstprogramm, mit dem Informationen zu einem Objekt auf Unix-ähnlichen Systemen angezeigt werden. Der Befehl erhält bei Verwendung die Informationen einer Objektdatei, auch wenn Sie keinen Quellcode haben. Daher kann es ein Debugging -Tool für Objektdateien sein, insbesondere bei der Arbeit mit Compiler -Programmen.”
Dieser Leitfaden deckt die verschiedenen Verwendungen des Objdump -Befehls mit Beispielen ab. Hör zu.
Verwendungen des Objdump -Befehls
Der objdump hat 6 Hauptzwecke:
Seine grundlegende Syntax ist:
$ objdump
Es gibt viele Optionen, die Sie mit dem Befehl objdump verwenden können, und Sie können die Hilfeseite anzeigen, um sie anzuzeigen.
$ objdump -HELP
Dieser Artikel verwendet das /bin /echo als unsere Objektdatei für unsere Beispiele. Sie können jedoch andere Objektdateien wie C -Programme verwenden. Die Verwendung ist immer noch die gleiche.
Arbeiten mit Objdump
Dateiheader der Objektdatei anzeigen
Die Option -f arm. Denken Sie daran, wir verwenden das /bin /echo, eine binäre ausführbare Datei für den Befehl echo als unser Objekt in diesem Fall.
$ objdump -f /bin /echo
Die resultierende Ausgabe, die die Datei -Header anzeigt, lautet:
Sie können das Format und die Header der Objektdatei aus der Ausgabe beachten.
Um die objektspezifischen Dateihoitzen zu erhalten
Wenn Sie bestimmte Dateiheader für die von Ihnen verwendete Objektdatei anzeigen müssen, verwenden Sie die Option -P.
$ objdump -p /bin /echo
Anzeigen der Inhalte des Abschnitts Header
Jede Datei hat unterschiedliche Abschnittsüberschriften. Wenn Sie den Inhalt der einzelnen Abschnittsüberschriften anzeigen müssen, verwenden Sie die Option -H.
$ objdump -h /bin /echo
In diesem Fall war die Ausgabe:
Aus der Ausgabe können Sie feststellen, dass die verschiedenen Abschnittsüberschriften von 1 nummeriert sind und jeder Abschnitt -Header seine Größe, VMA, LMA, Datei und ALGN hat.
Größe: repräsentiert die Größe des geladenen Abschnitts.
VMA: repräsentiert die virtuelle Speicheradresse
Lma: repräsentiert die logische Speicheradresse
Datei abgeben: repräsentiert den Versatz des Abschnitts vom Beginn der Datei.
Algn: repräsentiert die Ausrichtung des Abschnitts.
Die anderen Details wie Alloc, Daten, Readonly und Inhalt sind die verschiedenen Flags, die darstellen, wenn der Abschnitt readonly oder geladen ist.
Zeigen Sie Informationen aller Header an
Sie können auch alle Informationen über die Header in der Objektdatei erhalten. Verwenden Sie dazu die Option -x.
$ objdump -x /bin /echo
In diesem Beispiel wird die teilweise Ausgabe für den obigen Befehl lautet:
Um den Assemblerinhalt des ausführbaren Abschnitts zu erhalten
Verwenden Sie die Option -d -Option, um den Assembler -Inhalt des ausführbaren Abschnitts des Abschnitts zu erhalten.
$ objdump -d /bin /echo
In diesem Beispiel lautet die teilweise Ausgabe:
Die Ausgabe wird in ausführbare Abschnitte unterteilt, und für jeden Versammlungsinhalt wird wie gezeigt angezeigt. Zum Beispiel können Sie den Abschnitt sehen “.Init ”und seinen entsprechenden Assembler -Inhalt darunter, bevor Sie mit dem nächsten ausführbaren Abschnitt der Objektdatei fortfahren.
Holen Sie sich den Assembler -Inhalt jedes Abschnitts
Der -D zeigt den Assemblerinhalt nur der ausführbaren Abschnitte an. Verwenden Sie jedoch die Option der D, wenn Sie den Inhalt für alle Dateiabschnitte benötigen.
$ objdump -d /bin /echo
Alle Inhalte aller Abschnitte zu bekommen
Verwenden Sie dazu die Option -S
$ objdump -s /bin /echo
Die Ausgabe für alle Abschnitte und deren Inhalt ist:
Debug -Informationen anzeigen
Die Option -G zeigt alle verfügbaren Debug -Informationen der Objektdatei an.
$ objdump -g /bin /echo
Inhalt der Symboltabelle anzeigen
Wenn die Objektdatei über eine Symboltabelle verfügt, können Sie ihren Inhalt mit der Option -t -Option anzeigen
$ objdump -t /bin /echo
Abschluss
Ein Befehl objdump ist ein nützliches Werkzeug für Programmierer, die sich mit Compilern befassen. Der Befehl hat mehrere Verwendungszwecke und wir haben die häufigste Beispielnutzung behandelt. Sie können auch seine Mannseite überprüfen, um weitere Informationen darüber zu erhalten, wie Sie das Tool verwenden können. Darüber hinaus kann der Befehl etwas überwältigend werden. Üben Sie also weiter mehr. Alles Gute!