Максимальная запись активации в стеке - PullRequest
0 голосов
/ 14 сентября 2018

Вопрос довольно простой.Этот вопрос я получил на экзамене по программированию в университете.Теперь я нигде не мог найти ответ.Кто-нибудь из вас, ребята, имеет представление о том, какое максимальное количество AR в стеке?В с ++.

1 Ответ

0 голосов
/ 14 сентября 2018

Запись активации (он же кадр стека ) содержит как минимум адрес возврата функции.Например, инструкция x86 CALL помещает адрес возврата в стек, RET выводит его.Итак, теоретический максимум составляет max_stack_size / sizeof(void(*)()).Большинство функций используют аргументы и локальные переменные, которые также могут занимать стек вызовов, а также канарейки защиты стека .

Вы можете узнать max_stack_size с помощью команды ulimit -s bash или программно с помощьюgetrlimit(RLIMIT_STACK, ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...