[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gdb и elf



>> как адрес функции который выдает gdb преобразовать в смещение от начала
>> elf-файла?

> Судя по всему никак. То ж адрес в памяти, который зависим от состояния
> памяти на момент выделения. Может капнуть в сторону man dlopen:
насколько я понимаю все программы с одного адреса и грузятся?

то есть если взять и сделать что-то вроде 

#include <stdio.h>
void foo(void)
{
}

void main(void)
{
  printf("%d\n", (int)&foo);
}

то как ни вызывай всегда вернет одно и тоже число

соответственно существует прямая зависимость - смещение от начала elf и
адрес в памяти.

то есть адрес в памяти = константа + смещение от начала в elf

вопрос в том кто знает эту константу? (кто разбирался с форматом elf и
внутренним устройством линукс)



Reply to: