LINUX.ORG.RU

Добавить source code в object файл


0

1

Привет,

При сборке ядра надо добавить source code в object файл для одного файла, чтобы потом при использовании objdump этот source code видеть. Подскажите, пожалуйста, как это сделать.

Алексей.


$ gcc -g -c hello.c
$ objdump hello.o -S

hello.o:     file format elf64-x86-64 
 
Disassembly of section .text: 
 
0000000000000000 <main>: 
 
return ((_ecx >> bit) & 1); 
}*/ 
 
int main() 
{ 
   0:   55                      push   %rbp 
   1:   48 89 e5                mov    %rsp,%rbp 
    int i; 
    for (i=0; i<1024; i++) 
   4:   c7 45 fc 00 00 00 00    movl   $0x0,-0x4(%rbp) 
   b:   eb 04                   jmp    11 <main+0x11> 
   d:   83 45 fc 01             addl   $0x1,-0x4(%rbp) 
  11:   81 7d fc ff 03 00 00    cmpl   $0x3ff,-0x4(%rbp) 
  18:   7e f3                   jle    d <main+0xd> 
      loop: if (0) goto loop; 
    return 0; 
  1a:   b8 00 00 00 00          mov    $0x0,%eax 
} 
  1f:   c9                      leaveq  
  20:   c3                      retq

anon_666
()
Ответ на: комментарий от anon_666

> $ gcc -g -c hello.c

$ objdump hello.o -S

ядро собирается с помощью маке-файлов, и где мне найти именно тот маке, в котором поставить опцию -g (-g -скорей для dgb, мне же подойдет -S)

alexvm
() автор топика
Ответ на: комментарий от anon_666

> Собрать ядро с debug.

пробовал, source code в obj файл не добавляется...

alexvm
() автор топика
Ответ на: комментарий от alexvm

>и где мне найти именно тот маке
$ grep CFLAGS /usr/src/linux-`uname -r`/Makefile

HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
CFLAGS_MODULE   = $(MODFLAGS)
CFLAGS_KERNEL	=
CFLAGS_GCOV	= -fprofile-arcs -ftest-coverage
KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
...

anon_666
()
Ответ на: комментарий от anon_666

KBUILD_CFLAGS += -g и все получилось.

Спасибо!

alexvm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.