Bonjour,
J'ai 2 programmes Visual C++ : dont l'un est une librairie de l'autre.
Les 2 projets visual C++ sont séparés. Le programme 1 appelle le programme 2 qui est la librairie.
Comment faire pour débugger la librarie ?
Merci,
Christophe
Bonjour,
J'ai 2 programmes Visual C++ : dont l'un est une librairie de l'autre.
Les 2 projets visual C++ sont séparés. Le programme 1 appelle le programme 2 qui est la librairie.
Comment faire pour débugger la librarie ?
Merci,
Christophe
Bonjour,
Personnellement lorsque je développe une librairie je la teste comme une application avec un "main" de teste puis je la compile en librairie
Voilà si ça peut t'aider
Knives
C'est très simple, y'a rien a faire. Tu lances ton exécutable (avec Visual), tu mets un point d'arrêt dans le code source de la lib et ça doit marcher.
tu n'es pas obligé d'avoir les 2 dans une même solution Visual.
Au pire, tu dis à Visual (celui de la lib) qu'elle est débuggée par l'exe.
Si tu appuies sur F5 du Visual de la lib, il va te demander avec quel exe tu veux la débugger.
Comme l'a dit mala92, c'est très simple.
Mais il faut prendre des précautions.
Pour que le debugger de Visual Studio puisse vous indiquer les lignes en cours d'exécution, il faut qu'il ait accès aux informations de debugging des modules.
Donc pour débugger une librairie, il faut que le débuggeur trouve ces informations, sot directement dans le binaire (dans une section dédié de l'exécutable) soit dans un fichier dédié, le pdb.
Donc vérifiez que ces informations sont bien générées lors de la compilation de votre librairie. Si ces informations sont dans un fichier PDB, Il faudra aussi vérifier que le débuggeur les trouves, en les copiant dans le répertoire de travail de l'exécutable lancé par le débuggeur en début de session (touche F5 de VS).
Je n'avais pas vu ton "je la teste", vu que le sujet parle de debug et non de test.
Quand tu as une lib, tu as donc des fichiers sources, ces fichiers sources tu peux les intégrer dans un projet (exécutable) pour faire des tests unitaire/intégration automatisés. Mais ce n'est pas du debuggage !
Pour tester une librairie, il vaut mieux avoir un projet exécutable "Host" qui charge/utilise la librairie plutôt que la transformer en exécutable.
Ce projet Host sera de toute façon nécessaire pour la mise en place des tests unitaires, à moins d'utiliser un Framework de test unitaire, qui générera ou fournira cet exécutable.
En résumé, ne jamais convertir une librairie en exécutable. Il n'y a aucun bénéfice à la faire et cela empêche de voir des problèmes à l''utilisation de la librairie, comme des dépendance à la C-Runtime, les .h inutilisables etc..
Partager