Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von GCC und objdump eine Assembler-Ausgabe aus meinem C/C-Code erhalten?

Wie kann ich mithilfe von GCC und objdump eine Assembler-Ausgabe aus meinem C/C-Code erhalten?

Mary-Kate Olsen
Freigeben: 2024-12-24 05:21:20
Original
421 Leute haben es durchsucht

How can I get assembler output from my C/C   code using GCC and objdump?

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

Um den Kompilierungsprozess zu analysieren, ist das Extrahieren des ausgegebenen Assemblercodes unerlässlich. Eine effektive Methode ist die Verwendung der Option -S in GCC (oder G).

Verwendung der Option -S

Durch Angabe von -S verarbeitet der Präprozessor die Quelldatei, führen Sie die erste Kompilierung durch, halten Sie jedoch an, bevor Sie den Assembler aufrufen. Dadurch können Sie den Code untersuchen, bevor er assembliert wird. Für eine bessere Lesbarkeit verwenden Sie -fverbose-asm.

gcc -S helloworld.c
Nach dem Login kopieren

Die Ausgabedatei heißt standardmäßig helloworld.s. Um dies zu ändern, verwenden Sie die Option -o.

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

Analysieren vorhandener Objektdateien

Wenn Sie nur eine Objektdatei haben, können Sie objdump mit der Option -o verwenden. Option -disassemble (-d).

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

Für erweiterte Informationen sollten Sie die Verwendung von -rwC (für Symbolverschiebungen und Namen) in Betracht ziehen demangling), -Mintel (für Intel-Syntax mit x86) und -r (um Referenzen von nicht verknüpften Objekten einzuschließen).

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

Diese Methoden liefern wertvolle Einblicke in den Kompilierungsprozess und ermöglichen Ihnen die Analyse der Assembly Code Ihrer C/C-Programme.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von GCC und objdump eine Assembler-Ausgabe aus meinem C/C-Code erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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