Heim >Backend-Entwicklung >C++ >Wie kann ich mithilfe von GCC und objdump eine Assembler-Ausgabe aus meinem C/C-Code erhalten?
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
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
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
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
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!