Zugriff auf die Assembler-Ausgabe von der C/C-Quelle in GCC
Um den Kompilierungsprozess zu analysieren, ist es oft nützlich, den ausgegebenen Assemblercode zu extrahieren . Dies kann mit GCC auf zwei Arten erreicht werden:
Mit der Option -S:
Durch Hinzufügen der Option -S zum gcc-Befehl wird der Präprozessor aufgerufen , und die erste Kompilierung wird durchgeführt. Der Prozess wird jedoch vor der Montagephase angehalten. Diese Teilkompilierungsausgabe, normalerweise mit dem Namen file_name.s, enthält den Assemblercode, der der ursprünglichen C/C-Quelle entspricht.
Verwenden von objdump:
Wenn nur das Objekt Wenn die Datei verfügbar ist, kann das Dienstprogramm objdump zum Extrahieren des Assemblercodes verwendet werden. Durch Hinzufügen der Option --disassemble (-d) generiert objdump eine Disassemblierung der Objektdatei. Wenn die Kompilierung mit Debug-Informationen (mit -g) durchgeführt wurde, werden die Quellzeilen zur besseren Lesbarkeit mit der Disassemblierung verschachtelt.
Beispiel:
gcc -S source_file.c objdump -S --disassemble object_file.o > assembly_output.txt
Die Option -S mit gcc generiert eine Assemblydatei mit dem Namen source_file.s. Der Befehl objdump erstellt eine Textdatei mit dem Namen „assembly_output.txt“, die die Disassemblierung der Objektdatei enthält, einschließlich der Quellzeilen, falls verfügbar.
Zusätzliche objdump-Optionen zum Anpassen der Ausgabe umfassen:
Das obige ist der detaillierte Inhalt vonWie kann ich mit GCC auf den aus der C/C-Quelle generierten Assembly-Code zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!