Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Output Kod Perhimpunan daripada Kod Sumber C/C Pengumpulan GCC?

Bagaimanakah Saya Boleh Mendapatkan Output Kod Perhimpunan daripada Kod Sumber C/C Pengumpulan GCC?

Susan Sarandon
Lepaskan: 2024-12-27 06:51:09
asal
527 orang telah melayarinya

How Can I Get Assembly Code Output from GCC Compiling C/C   Source Code?

Mendapatkan Output Assembler daripada Sumber C/C dalam GCC

Untuk menganalisis cara kod disusun, adalah berfaedah untuk mendapatkan semula kod pemasangan yang dipancarkan. Dalam GCC, ini boleh dicapai menggunakan pilihan -S.

gcc -S helloworld.c
Salin selepas log masuk

Ini akan menggunakan prapemproses dan kompilasi awal, tetapi berhenti sebelum menjalankan pemasang.

Untuk output pemasangan yang lebih komprehensif, pertimbangkan untuk menggunakan -fverbose-asm bersama -O0. Walau bagaimanapun, ambil perhatian bahawa ini berfungsi paling baik pada tahap pengoptimuman lalai.

Fail output lalai ialah helloworld.s, tetapi boleh disesuaikan menggunakan -o. Selain itu, -o - boleh digunakan untuk mengarahkan output terus ke output standard.

gcc -S -o my_asm_output.s helloworld.c
Salin selepas log masuk

Jika hanya fail objek tersedia, objdump dengan pilihan --disassemble boleh digunakan:

objdump -S --disassemble helloworld > helloworld.dump
Salin selepas log masuk

Ini akan memisahkan talian sumber dengan output nyahpasang. Mendayakan penyahpepijatan (-g) dan mengelakkan pelucutan boleh meningkatkan butiran pembongkaran.

Untuk lebih banyak penyesuaian, pertimbangkan pilihan seperti -rwC (penempatan semula simbol), -Mintel (sintaks Intel) dan -r (penting untuk fail objek dengan rujukan simbol pemegang tempat).

Sebagai contoh, arahan berikut menyediakan pembuangan terperinci menggunakan Intel sintaks:

objdump -drwC -Mintel -S foo.o | less
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Output Kod Perhimpunan daripada Kod Sumber C/C Pengumpulan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan