Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mendapatkan output pemasang daripada kod C/C saya menggunakan GCC dan objdump?

Bagaimanakah saya boleh mendapatkan output pemasang daripada kod C/C saya menggunakan GCC dan objdump?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 05:21:20326semak imbas

How can I get assembler output from my C/C   code using GCC and objdump?

Mendapatkan Output Assembler daripada C/C Source dalam GCC

Untuk menganalisis proses penyusunan, mengekstrak kod pemasangan yang dipancarkan adalah penting. Satu kaedah yang berkesan ialah menggunakan pilihan -S dalam GCC (atau G ).

Menggunakan Pilihan -S

Dengan menyatakan -S, prapemproses akan memproses fail sumber, lakukan kompilasi awal, tetapi hentikan sebelum menggunakan pemasang. Ini membolehkan anda memeriksa kod sebelum ia melalui pemasangan. Untuk kebolehbacaan yang lebih baik, gunakan -fverbose-asm.

gcc -S helloworld.c

Fail output akan dinamakan helloworld.s secara lalai. Untuk menukar ini, gunakan pilihan -o.

gcc -S -o my_asm_output.s helloworld.c

Menganalisis Fail Objek Sedia Ada

Jika anda hanya mempunyai fail objek, anda boleh menggunakan objdump dengan - -cabut (-d) pilihan.

objdump -S --disassemble helloworld > helloworld.dump

Untuk maklumat yang dipertingkatkan, pertimbangkan untuk menggunakan -rwC (untuk simbol penempatan semula dan demangling nama), -Mintel (untuk sintaks Intel dengan x86) dan -r (untuk menyertakan rujukan daripada objek yang tidak dipautkan).

objdump -drwC -Mintel -S foo.o | less

Kaedah ini memberikan cerapan berharga tentang proses penyusunan, membolehkan anda untuk analisis kod pemasangan program C/C anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan output pemasang daripada kod C/C saya menggunakan GCC dan objdump?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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