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

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