gcov: de la production.sortie gcda de la bibliothèque partagée?

Est-il possible de produire des fichiers de données gcov (.gcda files) en exécutant un exécutable lié à une bibliothèque partagée construite avec l'option --coverage?

Fondamentalement, j'ai la bibliothèque principale composée de plusieurs fichiers c++ compilés dans une bibliothèque partagée, puis un sous-répertoire appelé "test" contenant un programme de test qui relie et teste la bibliothèque principale. Tout compile bien et la .gcno fichiers sont produits pour la bibliothèque de fichiers source et le test des fichiers source. Le .les fichiers gcda ne sont produits que pour les fichiers source de test, mais j'en ai vraiment besoin pour les fichiers source réels qui sont compilés dans la bibliothèque partagée.

Des idées?

Informations supplémentaires:
- C'est tout le code C++
- Tout est en cours de construction avec des scripts make générés par automake
- L'option -- coverage est spécifiée pour lib_la_CPPFLAGS et lib_la_LDFLAGS dans la bibliothèque partagée Makefile.am
- L'option -- coverage est spécifiée pour AM_CPPFLAGS et AM_LDFLAGS dans exécutable de test Makefile.am
- Les fichiers source de test utilisent Google Test (un Framework de test unitaire C++)

Edit: problème d'espacement fixe

21
demandé sur deuberger 2010-09-15 01:05:24

1 réponses

J'ai finalement résolu ce problème en obtenant de l'aide des gars de gcc. Voir le fil ici: http://gcc.gnu.org/ml/gcc-help/2010-09/msg00130.html .

Il se trouve que le .les fichiers gcda ont été mis dans le .répertoire libs puisque c'est là que se trouvaient les fichiers de la bibliothèque partagée (.so). Afin d'obtenir gcov pour produire la sortie, j'ai dû passer le .fichiers gcda jusqu'à un niveau où se trouvaient les fichiers source.

En outre, voici un fil similaire où quelqu'un d'autre courait dans certains des mêmes problèmes: gcov peut-il gérer un objet partagé?.

21
répondu deuberger 2017-05-23 12:09:11