J'ai une application C++ qui utilise une bibliothèque tierce. Ici et là, dans mon code, il y a des appels vers cette bibliothèque. Je voudrais retracer tous ces appels. Il serait facile si ce sont des fonctions dans mon code - j'insérerais une macro qui obtiendrait le nom de la fonction en cours et l'heure de début de l'appel et les passerait à un constructeur d'objet local, puis à la sortie de l'objet serait détruit et trace les données nécessaires. La macro s'étendrait à une chaîne vide pour les configurations où je n'ai pas besoin de traçage pour éliminer le surcoût associé.Comment tracer tous les appels vers un ensemble prédéfini de fonctions en C++?
Existe-t-il un moyen facile de faire quelque chose de manière fiable pour les appels vers une bibliothèque externe? Toute l'interface à la bibliothèque que j'ai est le fichier .h avec des prototypes de fonctions inclus dans mon code.
Si vous incluez les en-têtes à l'intérieur d'un espace de noms, les symboles définis dans l'en-tête seront dans un espace de noms différent des symboles définis dans la bibliothèque. –
@Jon: Vous avez raison, utiliser namespace ne résout pas le problème de symbole. Mais vous pouvez toujours utiliser une approche macro qui renomme la fonction appelée et laisse votre bibliothèque exporter le nom de la fonction renommée. La fonction renommée appelle alors la fonction d'origine et il n'y a pas de conflit de symbole. –