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

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • eurotuner

    eurotuner

    6 Mart 2006
  • Vortez

    Vortez

    27 Temmuz 2009