2017-06-19 3 views
1

J'utilise g ++ sur Solaris. Existe-t-il un moyen interne ou externe de connaître la taille de pile que j'ai utilisée jusqu'à maintenant dans un appel de fonction? Ceci est nécessaire pour diagnostiquer un dépassement de pile suspecté.Interrogation de la taille de la pile d'exécution sous Solaris à l'aide de C++

+1

connexes/duper: https://stackoverflow.com/questions/2275550/change-stack-size-for-ac-application-in-linux-during-compilation-with-gnu-com – NathanOliver

+0

@NathanOliver Je voudrais pour savoir combien j'ai consommé en termes de taille de pile jusqu'à présent pas la limite maximale –

Répondre

1

analyse statique: demander le compilateur/éditeur de liens pour l'analyse statique si la taille de la pile de votre application (vérifiez l'option du compilateur -fstack-usage). Approche/analyse dynamique: utilisez le débogueur et définissez un point d'arrêt conditionnel (accès en écriture) à la fin de votre pile. Si l'application écrit à la fin de la pile, le débogueur s'arrête et vous présente la pile des appels et la fonction qui conduit à la violation de la mémoire.

+0

Comment définir le point d'arrêt conditionnel à la fin de la pile (dans gdb)? –

1

DTractToolkit a un fichier stacksize.d. Cela pourrait valoir le coup d'oeil.