Re: gdb и elf
В Птн, 09/11/2007 в 16:38 +0300, Dmitry E. Oboukhov пишет:
> >> как адрес функции который выдает gdb преобразовать в смещение от начала
> >> elf-файла?
>
> > Судя по всему никак. То ж адрес в памяти, который зависим от состояния
> > памяти на момент выделения. Может капнуть в сторону man dlopen:
> насколько я понимаю все программы с одного адреса и грузятся?
>
> то есть если взять и сделать что-то вроде
>
> #include <stdio.h>
> void foo(void)
> {
> }
>
> void main(void)
> {
> printf("%d\n", (int)&foo);
> }
>
> то как ни вызывай всегда вернет одно и тоже число
На сколько я знаю это не правда. Тот эффект, который вы наблюдаете - это
либо между вызовами Вашей программы состояние памяти не сильно меняется
и Ваша программа грузится в одно и то же место, либо это результат
работы файлового кэша. Попробуйте запомнить адрес, перегрузиться,
запустить несколько ресурсоёмких программ и повторить попытку.
> соответственно существует прямая зависимость - смещение от начала elf и
> адрес в памяти.
На сколько я знаю такой зависимости не существует.
--
Покотиленко Костик <casper@meteor.dp.ua>
Reply to:
- Follow-Ups:
- gdb и elf
- From: "Dmitry E. Oboukhov" <dimka@avanto.org>
- References:
- gdb и elf
- From: "Dmitry E. Oboukhov" <dimka@avanto.org>
- Re: gdb и elf
- From: Покотиленко Костик <casper@meteor.dp.ua>
- gdb и elf
- From: "Dmitry E. Oboukhov" <dimka@avanto.org>