Wie kann ich den Assembler-Code für ein C++-Programm sehen?

Wie kann ich den Assembler-Code für ein C++-Programm sehen?

Fragen Sie den Compiler

Wenn Sie das Programm selbst erstellen, können Sie Ihren Compiler bitten, den Assembler-Quelltext auszugeben. Verwenden Sie für die meisten UNIX-Compiler den -S wechseln.

  • Wenn Sie den GNU-Assembler verwenden, kompilieren Sie mit -g -Wa,-alh gibt gemischte Quelle und Assemblierung auf stdout (-Wa fordert den Compiler-Treiber auf, Optionen an Assembler zu übergeben, -al schaltet die Assembly-Auflistung ein und -ah fügt eine Liste mit "High-Level-Quellen" hinzu):

    g++ -g -c -Wa,-alh foo.cc

  • Verwenden Sie für Visual Studio /FAsc .

Schauen Sie in die Binärdatei

Wenn Sie binär kompiliert haben,

  • benutze objdump -d a.out unter UNIX (funktioniert auch für Cygwin),
  • dumpbin /DISASM foo.exe unter Windows.

Verwenden Sie Ihren Debugger

Debugger könnten auch disassembly anzeigen.

  • Verwenden Sie disas Befehl in GDB,
  • oder das Disassemblierungsfenster von Visual Studio unter Windows.

Kompilieren Sie in GCC/G++ mit -S . Das wird einen something.s ausgeben Datei mit dem Assemblercode.

Bearbeiten:Wenn Sie möchten, dass die Ausgabe in Intel-Syntax erfolgt (was meiner Meinung nach viel besser lesbar ist und von den meisten Assembler-Tutorials verwendet wird), kompilieren Sie mit -masm=intel .


In Visual Studio;

  1. Haltepunkt setzen
  2. Programm ausführen, bis es am Haltepunkt stoppt
  3. Klicken Sie mit der rechten Maustaste auf den Quellcode und wählen Sie "Den Zusammenbau anzeigen"