2017-02-18 2 views
0

J'ai un processus parent qui code et execve un processus fils. Je souhaite suivre uniquement l'utilisation maximale du tas et de la pile de l'enfant. Quelqu'un peut-il me dire comment?Suivre uniquement l'utilisation du tas et de la pile du processus enfant

Je pensais que l'utilisation

valgrind --tool=massif --track-child=yes prog 

mais le rapport généré par massif contient des informations de la mémoire des parents aussi. Je ne m'intéresse qu'à l'enfant et aussi à l'utilisation maximale (tas et pile séparément)

J'essaye de faire ceci sur Linux.

+0

Vous devez éviter les murs de texte. Le code doit être formaté. Lisez l'aide, c'est assez court. –

Répondre

0

Cela peut être une manière quelque peu manuelle de faire les choses. Je pourrais remplir le tas et empiler avec des valeurs de test prédéterminées, avant que l'enfant n'appelle exec(). De cette façon, vous pouvez regarder en arrière à la pile et tas afin de vérifier quelles valeurs ont changé. Est-ce que c'est ce que vous cherchez, ou voulez-vous surveiller la pile et le tas en changeant dynamiquement?

+0

Lorsque l'enfant appelle execve(), la carte mémoire sera remplacée. J'ai donc besoin de le faire après que l'enfant appelle execve(). En outre, je voudrais avoir un outil pour le rendre plus rapide et plus fiable, je suppose. Je peux essayer cette solution en dernier recours, je suppose. En outre, je ne suis pas sûr de savoir comment malloc utilise tas. Il réserve plus de tas qu'il n'en utilise. Je voudrais trouver le tas total pris par malloc et pas seulement le tas que l'application utilise réellement. –