2010-10-05 6 views
2

Je dois déboguer plusieurs dll chacun dans leur propre projet. Il y a un exécutable parent qui charge une DLL, qui sert de conteneur pour les autres DLL. Ma question est comment puis-je déboguer l'ensemble du «composant», c'est-à-dire: toutes les DLL impliquées, en utilisant Visual Studio 2005 pour C++.Debugging multiples liées à chaque dll dans des projets séparés

Répondre

2

S'ils sont tous dans la même solution, définissez un point d'arrêt dans le projet de DLL où vous souhaitez déboguer, faites un clic droit sur le projet EXE et sélectionnez Debug> Démarrer une nouvelle instance.

Si elles sont dans des solutions séparées, ouvrez la solution de DLL, faites un clic droit sur le projet, développez le nœud Propriétés de configuration dans l'arborescence à gauche, sélectionnez Debugging. Définissez la propriété Command pour pointer vers la version de débogage du fichier EXE dans l'autre projet. Ensuite, définissez vos points d'arrêt et appuyez sur F5 pour lancer le débogage.

+0

merci pour l'entrée. J'ai ajouté tous les projets à la même solution, mais les points d'arrêt que je définis donnent le point d'arrêt d'avertissement ne seront pas touchés, car aucun symbole de débogage ne se charge à partir du fichier. – Pradyot

+0

Est-ce que c'est avec la configuration "debug" sélectionnée? Essayez de reconstruire la solution? – dgnorton

2

Arbitrairement choisir l'un des projets DLL comme le projet de démarrage, il n'a pas d'importance. Cliquez avec le bouton droit sur + Propriétés, Débogage. Définissez le paramètre 'Commande' sur le chemin d'un EXE de test qui chargera les DLL. Si vous n'en avez pas un bon, alors écrivez-en un, peut aussi bien l'ajouter au projet et en faire le projet de démarrage.

attention à la fenêtre de sortie alors que le EXE commence. Vous verrez des notifications pour chaque DLL chargée. Dès que l'une des DLL de votre solution est chargée, le débogueur entre, recherche le fichier .pdb de la DLL et active les points d'arrêt que vous auriez définis dans le code source de la DLL. Vous ne pouvez pas déboguer la DLL sauf si l'EXE le charge.

Si cela ne permet toujours pas des points d'arrêt puis utilisez les modules de débogage + de Windows + et localiser la DLL dans la liste. Cliquez avec le bouton droit et choisissez Informations de chargement de symboles pour savoir où le débogueur a recherché le fichier .pdb. Cela ne va pas très souvent car la DLL contient le chemin d'accès au fichier .pdb. Le mode de défaillance le plus typique est que le fichier EXE n'a pas chargé la DLL.

Questions connexes