Как мне найти максимальный размер стека? - PullRequest
29 голосов
/ 24 сентября 2011

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

Ответы [ 5 ]

25 голосов
/ 24 сентября 2011

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

> ulimit -a         # shows the current stack size
22 голосов
/ 24 сентября 2011

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

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

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

cat /proc/<pid>/limits
16 голосов
/ 09 октября 2014

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

ulimit -s
3 голосов
/ 24 сентября 2011

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

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

0 голосов
/ 27 марта 2018

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

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

...