Je travaille sur un projet où je dois trouver quelles fonctions sont appelées dans différents programmes Linux (écrits en C) avec des entrées particulières. Mon approche actuelle a été de compiler un programme avec -pg (option de profilage), de l'exécuter, et de trouver quelles fonctions sont appelées en traitant la sortie de gprof. Seules les fonctions appelées au moins une fois apparaissent dans le fichier de sortie.Trouver quelles fonctions sont appelées dans un programme multi-process sans modifier la source?
Le problème apparent est qu'un seul processus peut écrire dans le fichier de sortie gprof. Si le programme forge plusieurs processus, je n'obtiens aucune sortie de profilage des autres processus.
Y at-il un moyen de faire de gprof un fichier de sortie pour chaque processus (peut-être étiqueté par pid)? Le manuel suggère que chaque processus change dans un répertoire différent, mais je ne veux pas modifier le code source pour le faire. Y at-il un autre outil pour Linux qui peut aider?
gcov a le même problème. La couverture du processus de l'enfant n'est pas signalée. –