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
Lepaskan: 2024-12-24 05:21:20
asal
406 orang telah melayarinya

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
Salin selepas log masuk

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

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

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
Salin selepas log masuk

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
Salin selepas log masuk

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