Я работаю над Ubuntu 11.04. Как узнать максимальный размер стека вызовов процесса, а также размер каждого фрейма стека?
Я работаю над Ubuntu 11.04. Как узнать максимальный размер стека вызовов процесса, а также размер каждого фрейма стека?
Вы можете запросить максимальный размер процесса и стека, используя getrlimit
, Рамки стека не имеют фиксированного размера; это зависит от того, сколько локальных данных (т. е. локальных переменных) требуется для каждого кадра.
Чтобы сделать это в командной строке, вы можете использовать ulimit.
Если вы хотите прочитать эти значения для выполняемого процесса, я не знаю ни одного инструмента, который делает это, но достаточно легко запросить файловую систему / proc:
cat /proc/<pid>/limits
Быстрый поиск Google должен выявить некоторая информация по этому вопросу ,
> ulimit -a # shows the current stack size
Максимальный размер стека в килобайтах:
ulimit -s
Вы можете использовать getrlimit
для просмотра размера стека и setrlimit
изменить его.
Пример в Увеличьте размер стека в Linux с помощью setrlimit после.
getrlimit()
а также setrlimit()
не являются командами Linux. Это системные вызовы.
Поэтому, чтобы получить результат из них, вам нужно что-то вроде скрипта bash или любого другого исполняемого скрипта, который возвращает результат системного вызова.