2015-08-20 1 views
-1

Je reçois accident alors que je lance l'application (par exemple Connection.dll)Mise au point d'un débogage C++ dll COM avec pdb mais sans le code source

Avant de tomber en panne l'affirmation suivante vient dans C: \ Program Files \ Microsoft Visual Studio 11.0 \ VC \ atlmfc \ include \ atlcom.h sur la ligne n ° 4735 (voir ci-dessous)

ATLASSERT (pdispparams-> cArgs == (UINT) info.nParams);

Maintenant, le client a fourni le fichier pdb de Connection.dll.

Mais le client n'a pas fourni le code source de Connection.dll. Je veux trouver la cause première (nom de la fonction atleast dans le Connection.dll) donnant le problème.

Toute aide concernant ceci sera grandement appréciée.

Merci, Sandip Pawar

+0

Un fichier PDB est mappé de la position dans le fichier binaire à la position dans le fichier source. Je ne pense pas que ça te fera beaucoup de bien sans les fichiers source. – Angew

+0

La cause première est assez simple à voir, vous appelez une méthode avec le mauvais nombre d'arguments. Cela n'arrive jamais à une bonne fin. Vous devez mettre à jour votre wrapper MFC à partir de la nouvelle bibliothèque de types. –

Répondre

0

Si vous pouvez obtenir VisualStudio pour charger l'APB, il vous montrera les noms de fonction, pile et paramètres de telle sorte que vais vous donner quelques indices. Mettre la PDB à côté de la DLL peut fonctionner, ou vous devrez peut-être l'ajouter au chemin du symbole. Si le PDB ne correspond pas exactement à la version de la DLL, il refuse généralement de le charger, ce qui est un PITA.