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?
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
Une recherche rapide sur Google devrait révéler quelques informations à ce sujet .
> ulimit -a # shows the current stack size
Taille maximale de la pile en kilooctets:
ulimit -s
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.
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.