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:
- References:
- gdb и elf
- From: "Dmitry E. Oboukhov" <dimka@avanto.org>
- Re: gdb и elf
- From: Покотиленко Костик <casper@meteor.dp.ua>