SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012
  • super1988guy

    super1988guy

    9 Aralık 2007