2009-10-09 8 views

Répondre

5

Oui, vous pouvez déboguer dans la DLL que vous pouvez, mais vous aurez besoin de source (sauf si vous voulez regarder le désassemblage) et vous aurez également besoin des PDB (symboles de débogage) pour l'assemblage. Il est assez facile à installer ...

  1. démarrer l'application QTP
  2. commencer Visual Studio
  3. ouvrir le code source et assurez-vous de Les pdb sont dans le même répertoire que le dll
  4. dans VS allez dans le menu de débogage et sélectionnez attacher à traiter
  5. dans la liste des processus, sélectionnez le processus QTP et cliquez sur « attach »
  6. Définir un point d'arrêt dans le code
  7. Démarrer les tests qui exécutent le code et si tout va bien, vous devriez frappé le point d'arrêt

REMARQUE: si le point d'arrêt est atteint pas, VS probablement ne peuvent pas trouver l'APB de vous soit besoin d'ajouter un chemin options en VS (ou quelque chose de sorte qu'il peut les trouver). Essayez également de désactiver "Activer uniquement mon code" dans la page Outils-> Options-> Options de débogage si cela ne fonctionne toujours pas (surtout si vous regardez le code généré). Répondre à un commentaire ... Si vous allez dans Outils-> Options ... Sélectionnez "Déboguer" dans la liste de gauche et développez-le, puis sélectionnez "Symboles" vous pouvez y ajouter des chemins pour VS pour rechercher des symboles. De plus, si vous n'avez pas les symboles exacts, vous pouvez cliquer sur le point d'arrêt avec le bouton droit de la souris et sélectionner l'emplacement et cocher l'option qui permettra aux symboles d'être désynchronisés.

Espérons que cela aide!

+0

c'est une meilleure approche ... – RameshVel

+0

c'est généralement mieux, mais la solution Debugger.Break() fonctionnera dans certains cas où ce ne sera pas le cas. – Herms

+0

Merci pour la réponse. Mais comme vous avez dit VS ne trouve probablement pas le chemin de PDB même si c'est dans le même dossier avec la DLL. Où puis-je mentionner le chemin de l'APB? – Learner

2

Vous pouvez insérer un appel à Debugger.Break() et exécuter l'application externe, lorsque le point d'arrêt sera atteint Windows vous proposera de déboguer l'exception.

Choisir le débogage vous permettra d'exécuter le code après la pause dans Visual Studio et de définir des points de rupture dans votre code.

Si vous utilisez Vista/Win7, vous devrez peut-être activer le débogage - jetez un oeil à this post pour savoir comment.

+0

Il n'y a aucune raison de changer le code pour faire cela ... vous pouvez facilement attacher le débogueur vous-même. –

+0

Ceci est utile si vous avez besoin de pouvoir interrompre quelque chose qui s'exécute automatiquement au démarrage de l'application. Si votre point d'arrêt se produit après la saisie de l'utilisateur, une connexion normale est correcte, mais sinon, vous ne pourrez peut-être pas joindre et définir l'avant que le code que vous souhaitez déboguer soit atteint. J'ai rencontré cette situation plusieurs fois avec une DLL C++ sur laquelle j'ai travaillé. – Herms

+0

vrai que le timing peut être un problème, mais dans ce cas QTP exécute des tests et vous pouvez contrôler quand les tests s'exécutent donc ça ne devrait pas être un problème (autant que je sache) –