Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Kod Perhimpunan daripada C/C menggunakan GCC dan objdump?
Cara Mengeluarkan Kod Assembler daripada Sumber C/C dalam GCC
Apabila menganalisis kod yang disusun, mengakses kod pemasangan yang dijana adalah penting. Dalam GCC, ini boleh dicapai menggunakan pilihan "-S".
Menggunakan Pilihan -S
Secara lalai, "-S" menjalankan prapemproses pada fail sumber, melaksanakan kompilasi awal tetapi berhenti sebelum menggunakan pemasang. Digabungkan dengan "-fverbose-asm", pilihan ini mengaitkan kod C dengan kod pemasangan sebagai ulasan, terutamanya berguna pada tahap pengoptimuman -O0.
gcc -S helloworld.c
Menyesuaikan Fail Output
Fail output biasanya dinamakan sempena fail sumber dengan sambungan .s. Untuk menyesuaikan lokasi fail output, gunakan pilihan "-o":
gcc -S -o my_asm_output.s helloworld.c
Sebagai alternatif, anda boleh output ke konsol dengan menggunakan "-o -":
gcc -S -o - helloworld.c | less
Mengakses Himpunan untuk Objek Boleh Laksana
Jika anda tidak mempunyai kod sumber asal tetapi mempunyai objek fail, gunakan objdump dengan pilihan "--disassemble" (-d):
objdump -S --disassemble helloworld > helloworld.dump
Dayakan penyahpepijatan dalam kompilasi asal (-g) untuk output pembongkaran yang dipertingkatkan dengan rujukan talian sumber.
Pilihan Objdump Tambahan
Pertimbangkan untuk menggunakan ini pilihan objdump untuk analisis yang lebih terperinci:
Sebagai contoh, arahan berikut menyediakan pembongkaran yang kaya output:
objdump -drwC -Mintel -S foo.o | less
Ingat, "-r" adalah penting untuk memaparkan rujukan simbol dalam fail .o dengan ruang letak.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Kod Perhimpunan daripada C/C menggunakan GCC dan objdump?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!