La plupart des compilateurs/lieurs optimisent les symboles inutilisés. Si vous utilisez un système * nix, vous pouvez essayer d'utiliser la commande "nm" sur tous les fichiers objets, les filtrer et les trier, pour produire une liste de toutes les fonctions exportées définies par ces fichiers objets.
nm *.o | grep "^[0-9a-f]* T " | sed 's/^[0-9a-f]* T //' | sort -u > symbols_in.txt
Je crois que vous pouvez faire de même sur les binaires finaux.
Si vous différez ensuite les deux ensembles de résultats, vous devriez obtenir une liste de toutes les fonctions exportées inutilisées.
Attention, cependant, certaines fonctions peuvent être utilisées par du code exclu suite à une compilation conditionnelle. Par exemple. un commutateur #ifdef pour dire que sur la plate-forme A, utilisez telle ou telle fonctionnalité intégrée et sur une autre plate-forme, utilisez votre propre version de la fonction car il n'y a pas de bibliothèque intégrée ou standard équivalente, ou cela ne fonctionne pas correctement.
duplication possible de [Recherche de "code mort" dans une grande application héritée C++] (http://stackoverflow.com/questions/2380153/finding-dead-code-in-a-large-c-legacy-application) – icecrime
Cette question est spécifique au Binutils – doron
duplicata possible de [Y at-il un moyen d'obtenir gcc de prévenir des fonctions inutilisées?] (Http://stackoverflow.com/questions/9091397/is-there-a-way-to- get-gcc-to-warn-about-unused-functions) –