Heim > Backend-Entwicklung > C++ > Wie kann ich mit GCC auf den aus der C/C-Quelle generierten Assembly-Code zugreifen?

Wie kann ich mit GCC auf den aus der C/C-Quelle generierten Assembly-Code zugreifen?

Patricia Arquette
Freigeben: 2024-12-23 02:27:24
Original
730 Leute haben es durchsucht

How Can I Access the Assembly Code Generated from C/C   Source Using GCC?

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
Nach dem Login kopieren

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:

  • -rwC: Symbolverschiebungen anzeigen, Zeilenumbruch deaktivieren und C entwirren Namen.
  • -Mintel: Verwenden Sie Intel-Syntax für x86-Assembly anstelle von AT&T.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage