Heim > Backend-Entwicklung > C++ > Wie kann ich beim Kompilieren von C/C-Quellcode durch GCC eine Assemblercode-Ausgabe erhalten?

Wie kann ich beim Kompilieren von C/C-Quellcode durch GCC eine Assemblercode-Ausgabe erhalten?

Susan Sarandon
Freigeben: 2024-12-27 06:51:09
Original
570 Leute haben es durchsucht

How Can I Get Assembly Code Output from GCC Compiling C/C   Source Code?

Assembler-Ausgabe von der C/C-Quelle in GCC abrufen

Um zu analysieren, wie Code kompiliert wird, ist es hilfreich, den ausgegebenen Assembler-Code abzurufen. In GCC kann dies mit der Option -S erreicht werden.

gcc -S helloworld.c
Nach dem Login kopieren

Dadurch werden der Präprozessor und die anfängliche Kompilierung aufgerufen, aber angehalten, bevor der Assembler ausgeführt wird.

Für eine umfassendere Assembly-Ausgabe: Erwägen Sie die Verwendung von -fverbose-asm neben -O0. Beachten Sie jedoch, dass dies bei Standardoptimierungsstufen am besten funktioniert.

Die Standardausgabedatei ist helloworld.s, kann aber mit -o angepasst werden. Darüber hinaus kann -o - verwendet werden, um die Ausgabe direkt auf die Standardausgabe umzuleiten.

gcc -S -o my_asm_output.s helloworld.c
Nach dem Login kopieren

Wenn nur die Objektdatei verfügbar ist, kann objdump mit der Option --disassemble verwendet werden:

objdump -S --disassemble helloworld > helloworld.dump
Nach dem Login kopieren

Dadurch werden Quellzeilen mit der Demontageausgabe verschachtelt. Durch Aktivieren des Debuggens (-g) und Vermeiden von Stripping können die Disassemblierungsdetails verbessert werden.

Für noch mehr Anpassungen sollten Sie Optionen wie -rwC (Symbolverschiebungen), -Mintel (Intel-Syntax) und -r (wichtig für) in Betracht ziehen Objektdateien mit Platzhaltersymbolverweisen).

Zum Beispiel liefert der folgende Befehl einen detaillierten Dump mit Intel-Syntax:

objdump -drwC -Mintel -S foo.o | less
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich beim Kompilieren von C/C-Quellcode durch GCC eine Assemblercode-Ausgabe erhalten?. 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