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

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • gsipek

    gsipek

    20 Temmuz 2007