17 AĞUSTOS 2009, PAZARTESİ
Okunabilir derleme üretmek için kullanarak GCC?
C kaynak dosyası GCC benim kod derlenmiş olmanın ne olduğunu görebilmem için makine kodu anımsatıcı bir sürüm dökümü nasıl kullanacağını merak ediyordum. Java ile bunu yapabilirsin ama GCC ile bir yol bulmak mümkün olmamıştır.
Mecliste yeniden yazma C bir yöntem bulmaya çalışıyor ve GCC büyük bir yardım olur mu nasıl görüyorum.
CEVAP
17 AĞUSTOS 2009, PAZARTESİ
Hata ayıklama sembolleri ile derlemek, objdump
Daha okunabilir bir çözümü üretmek için kullanabilirsiniz.
>objdump --help
[...]
-S, --source Intermix source code with disassembly
-l, --line-numbers Include line numbers and filenames in output
< / ^ hr .
Örnek:
> gcc -g -c test.c
> objdump -d -M intel -S test.o
test.o: file format elf32-i386
Disassembly of section .text:
00000000 <main>:
#include <stdio.h>
int main(void)
{
0: 55 push ebp
1: 89 e5 mov ebp,esp
3: 83 e4 f0 and esp,0xfffffff0
6: 83 ec 10 sub esp,0x10
puts("test");
9: c7 04 24 00 00 00 00 mov DWORD PTR [esp],0x0
10: e8 fc ff ff ff call 11 <main 0x11>
return 0;
15: b8 00 00 00 00 mov eax,0x0
}
1a: c9 leave
1b: c3 ret
Bunu Paylaş:
Java kullanarak.net.Ateş ve işlemek iç...
Nasıl iPhone için Windows geliştirme m...
Dinamik hücre düzenleri için UİTableVi...
Nasıl bir köprü jQuery kullanarak href...
Nasıl sadece sayısal (0-9) HTML ınputb...