J'ai un processus A qui traite les processus B. A et B - sont des applications différentes. Les deux compilés avec -g flag.Les noms de fonctions callgrind ne sont pas affichés dans les processus enfants
pour le faire tourner avec callgrind j'utiliser commande: valgrind --tool = callgrind --trace-enfants = oui ./A [params]
callgrind.out.xxx de processus parent (A) contient la fonction des noms. pour le processus de l'enfant (B) - il ne contient pas. Quel pourrait être le problème ici?
Merci
Cette documentation indique également que l'appel spécial est nécessaire dans l'enfant "* Si votre programme forks, l'enfant héritera de toutes les données de profilage qui ont été recueillies pour le parent Pour commencer avec des valeurs de compteur de profil vides dans l'enfant demande CALLGRIND_ZERO_STATS; peut être inséré dans le code à exécuter par l'enfant, directement après la fourchette. De plus, le processus B est une application différente, démarrée par 'fork' +' exec', et il n'y a pas de documentation sur 'exec' – osgx
Il vaut la peine de noter que si vous voulez que valgrind trace les processus fils lancés avec' '' fork + exec' '', vous avez également besoin du drapeau '' '--trace-children = yes'''. Voir la page valgrind '' 'man''' pour la documentation sur' '' 'exec'''. – SullX