Generieren der Assembler-Ausgabe aus der C/C-Quelle in GCC
Zur Analyse des Kompilierungsprozesses, Abrufen des ausgegebenen Assemblercodes aus der C/C-Quelle kann von unschätzbarem Wert sein. GCC bietet zwei Methoden, um dies zu erreichen: die Verwendung der Option -S und die Verwendung von objdump.
Verwendung der Option -S:
Die Option -S weist GCC an, das auszuführen Präprozessor und führen Sie die erste Kompilierung durch, halten Sie jedoch vor der Assembler-Ausführung an. Standardmäßig wird die Ausgabe in einer Datei mit der Erweiterung .s gespeichert. Um eine benutzerdefinierte Ausgabedatei anzugeben, verwenden Sie die Option -o.
gcc -S helloworld.c
Objdump verwenden:
Wenn Sie nur die resultierende Objektdatei haben, können Sie objdump verwenden mit der Option --disassemble (-d für eine kürzere Version), um die zu zerlegen Code:
objdump -S --disassemble helloworld > helloworld.dump
Zusätzliche Optionen:
Beispiel:
Um einen detaillierten Assembler zu erhalten Ausgabe mit Intel-Syntax aus einer .o-Datei, die Platzhalter für Symbolverweise enthalten kann, verwenden:
objdump -drwC -Mintel -S foo.o | less
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von GCC Assemblercode aus einer C/C-Quelle generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!