web-dev-qa-db-fra.com

Comment trouver la taille de pile maximale?

Je travaille sur Ubuntu 11.04. Comment connaître la taille maximale de la pile d'appels d'un processus ainsi que la taille de chaque image de la pile?

29
Bruce

Vous pouvez interroger la taille maximale du processus et de la pile à l'aide de getrlimit. Les cadres de pile n'ont pas de taille fixe; cela dépend de la quantité de données locales (c’est-à-dire des variables locales) nécessaires à chaque trame.

Pour ce faire sur la ligne de commande, vous pouvez utiliser ulimit.

Si vous voulez lire ces valeurs pour un processus en cours d'exécution, je ne connais aucun outil qui le fasse, mais il est assez facile d'interroger le système de fichiers/proc

cat /proc/<pid>/limits
21
Marcelo Cantos

Une recherche rapide sur Google devrait révéler quelques informations à ce sujet .

> ulimit -a         # shows the current stack size
25
fruchtose

Taille maximale de la pile en kilooctets:

ulimit -s
16
cprcrack

Vous pouvez utiliser getrlimit pour voir la taille de la pile et setrlimit pour la changer.

Il existe un exemple dans Augmentez la taille de la pile sous Linux avec setrlimit post.

3
sashang

getrlimit() et setrlimit() ne sont pas des commandes Linux. Ce sont des appels système.

Donc, pour en obtenir le résultat, vous avez besoin de quelque chose comme un script bash ou tout autre script exécutable qui renvoie le résultat de l'appel système. 

0
user9558595