Вопрос: Как найти максимальный размер стека?


Я работаю над Ubuntu 11.04. Как узнать максимальный размер стека вызовов процесса, а также размер каждого фрейма стека?


25


источник


Ответы:


Вы можете запросить максимальный размер процесса и стека, используя getrlimit, Рамки стека не имеют фиксированного размера; это зависит от того, сколько локальных данных (т. е. локальных переменных) требуется для каждого кадра.

Чтобы сделать это в командной строке, вы можете использовать ulimit.

Если вы хотите прочитать эти значения для выполняемого процесса, я не знаю ни одного инструмента, который делает это, но достаточно легко запросить файловую систему / proc:

cat /proc/<pid>/limits

19



Быстрый поиск Google должен выявить некоторая информация по этому вопросу ,

> ulimit -a         # shows the current stack size

24



Максимальный размер стека в килобайтах:

ulimit -s

14



Вы можете использовать getrlimit для просмотра размера стека и setrlimit изменить его.

Пример в Увеличьте размер стека в Linux с помощью setrlimit  после.


3



getrlimit() а также setrlimit() не являются командами Linux. Это системные вызовы.

Поэтому, чтобы получить результат из них, вам нужно что-то вроде скрипта bash или любого другого исполняемого скрипта, который возвращает результат системного вызова.


0