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

  • Sams Page :D

    Sams Page :D

    15 Mart 2009
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011