2013-07-25 1 views

Répondre

3

Mais gmon.out n'est pas créé quand je FOURCHE un autre exécutable

Il fait probablement. Il a simplement le même nom que tous les autres fichiers gmon.out. Ils se récriminent silencieusement. GNU, dans toute sa sagesse infinie, recommande que chaque processus enfant que vous voulez profiler soit exécuté dans son propre répertoire courant. Utilisez mkdir et chdir dans votre code si nécessaire. Puisque gmon.out est écrit à la fin du processus, il est seulement nécessaire de chdir avant d'appeler exit. Je recommande également d'examiner valgrind. Entre autres choses agréables, il a ses fichiers de sortie nommés something.somethingelse.$PID.

+0

Même recommandation d'IBM (AIX): https://computing.llnl.gov/tutorials/performance_tools/man/gprof.txt "Profilage avec les sous-programmes fork et exec", "* .. un moyen de contourner ce problème est d'appeler le sous-programme 'chdir' pour changer le répertoire courant du processus fils. *" – osgx

0

lorsque vous définissez la variable d'environnement GMON_OUT_PREFIX=some_file_name, gprof va créer des fichiers GMON supplémentaires pour chaque processus d'enfant avec le nom some_file_name.pid.

Questions connexes