529 Stimmen

Wie erhalten Sie Assembler-Ausgabe von C/C++-Quellcode in gcc?

Wie kann man das tun?

Wenn ich analysieren möchte, wie etwas kompiliert wird, wie erhalte ich dann den emittierten Assemblercode?

9voto

Antonin GAVREL Punkte 7751

Ich sehe diese Möglichkeit nicht unter den Antworten, wahrscheinlich weil die Frage aus dem Jahr 2008 stammt, aber im Jahr 2018 können Sie die Online-Website von Matt Goldbolt nutzen https://godbolt.org

Sie können sein Projekt auch lokal mit git klonen und ausführen https://github.com/mattgodbolt/compiler-explorer

8voto

Paige Ruten Punkte 164391

Verwenden Sie die Option -S:

gcc -S program.c

8voto

Himanshu Pal Punkte 75

Hier ist eine Lösung für C mit GCC :

gcc -S program.c && gcc program.c -o output
  1. Hier speichert der erste Teil die Assembler-Ausgabe des Programms unter demselben Dateinamen wie Program, aber mit einem geänderten .s können Sie sie wie jede normale Textdatei öffnen.

  2. Der zweite Teil kompiliert Ihr Programm für die tatsächliche Verwendung und erzeugt eine ausführbare Datei für Ihr Programm mit einem bestimmten Dateinamen.

El programm.c ist der Name Ihres Programms und Ausgabe ist der Name der ausführbaren Datei, die Sie erzeugen möchten.

6voto

Anonymous Punkte 69

Von: http://www.delorie.com/djgpp/v2faq/faq8_20.html

gcc -c -g -Wa,-a,-ad [andere GCC-Optionen] foo.c > foo.lst

als Alternative zur Antwort von PhirePhly Oder verwenden Sie einfach -S, wie alle gesagt haben.

2voto

Ashutosh K Singh Punkte 181

Output of these commnads

Hier sind die Schritte, um den Assembler-Code eines beliebigen C-Programms auf Ihrem Windows zu sehen/zu drucken

Konsole /Terminal/ Eingabeaufforderung :

  1. Schreiben Sie ein C-Programm in einem C-Code-Editor wie Codeblocks und speichern Sie es mit der Endung .c

  2. Kompilieren Sie es und führen Sie es aus.

  3. Nach erfolgreicher Ausführung wechseln Sie in den Ordner, in dem Sie Ihren gcc-Compiler installiert haben, und geben Sie die

    folgenden Befehl, um eine ".s"-Datei der ".c"-Datei zu erhalten

    C:\ gcc> gcc -S vollständiger Pfad der C-Datei ENTER

    Ein Beispielbefehl (wie in meinem Fall)

    C:\gcc > gcc -S D:\Aa_C_Certified\alternate_letters.c

    Dies gibt eine ".s"-Datei der ursprünglichen ".c"-Datei aus

4 . Geben Sie anschließend den folgenden Befehl ein

C; \gcc > cpp filename.s ENTER

Beispielbefehl (wie in meinem Fall)

C; \gcc > cpp alternate_letters.s

Dadurch wird der gesamte Assembler-Code Ihres C-Programms gedruckt/ausgegeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X