Код: Выделить всё
#include
#include
int main(int argc, char *argv[]) {
int ss;
int xx = system("cat /proc/self/maps | grep stack");
printf("&ss=%p\n", &ss);
return 0;
}
Код: Выделить всё
7ffc63ee7000-7ffc63f09000 rw-p 00000000 00:00 0 [stack]
&ss=0x7ffe3e13d8a0
Я уже видел аналогичный вопрос по SO: адрес локальной переменной не входит в диапазон адресов стека, показанный smaps
Предоставленные ответы мне не подходят:
- очевидно, в этой программе нет тем.
< li>без программирования в стиле сопрограмм, longjmp и т. д.
Просто чтобы прояснить причину, по которой мне нужно это сделать. Я пишу консервативный сборщик мусора и хочу получить диапазон стека для сканирования, получив адрес переменной в main и другой в текущей функции.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -self-maps
Мобильная версия