Hangi kodun üretildiğini görmek için C kaynak hatlarını derleme çıktısına almak istiyorum.Kaynak satırlarını GCC kullanarak montaj çıktısıyla nasıl alabilirim?
-S
-Wa,-ahlms
gibi GCC seçeneklerini denedim (ve hatta -Wa,--gstabs
'çünkü onu bir yere okudum).
Oh! BTW, Mac’te çalışıyorum, dolayısıyla objdump
’um yok.
Bu sorduğun değil tam olarak ne gcc pc-clisp.c -S -g -fverbose-asm -fnested-functions
.globl _getBool
_getBool:
LFB32:
LM21:
pushl %ebp #
LCFI30:
movl %esp, %ebp #,
LCFI31:
subl $8, %esp #,
LCFI32:
LM22:
movzbl 8(%ebp), %eax # atom.pred, D.4112
movzbl %al, %eax # D.4112, D.4113
andl $-16, %eax #, D.4114
sarl $4, %eax #, D.4115
testl %eax, %eax # D.4115
setne %al #, tmp64
movzbl %al, %eax # tmp64, D.4111
leave
ret
LFE32:
Yapmak istediğim şey bir Mac üzerinde kolayca yapılamaz. 1) “objdump” yoktur ve “otools” da işi yapmaz. 2) 'gdb' daha yeni sürümlerde' disas/m '- Mac'in daha eski bir gdb'si vardır. 3) 'GCC' nin montajcı çıktısının Mac’e çok yardımcı olmadığından şüpheleniyorum. 4) Neden XCode'u kullanmak zorundayım? (Buna cevap verme). –
philcolbourn
Bu sorudan kısa bir süre sonra linux kurdum ve OS-X'den vazgeçtim, ancak Douglas bir çözüme daha yakın görünüyor. – philcolbourn
Eğer kodun küçük bölümlerine bakıyorsanız godbolt (bu yanıtı açıkla) olarak daha basit bir çözüm olabilir (http://stackoverflow.com/a/25781924/1708801). –