2010-04-02 34 views
6

J'ai besoin d'enregistrer des données lorsque certaines fonctions sont touchées, à la fois au début et à la fin de l'exécution. Bien que je n'aie aucun problème à mettre des points d'arrêt au début des fonctions (en utilisant bu [module]!functionname, je ne sais pas comment mettre un point d'arrêt à la fin d'une fonction, TELLEMENT je n'ai pas besoin d'éditer le point d'arrêt chaque fois que j'ajoute/supprime fichier/fonction. Je suis sûr que son scénario très commun, juste que je ne sais pas comment le fait !! quelqu'un peut-il expliquer?Comment mettre un point d'arrêt à la fin d'une fonction dans windbg, de sorte que je n'ai pas besoin de l'éditer même si certaines lignes ont été ajoutées/supprimées dans la source?

Répondre

7

Vous pouvez utiliser le point d'arrêt au début de la fonction pour configurer le point d'arrêt à l'adresse de retour. Comme ceci:

bu [module]!functionname "bp /1 @$ra \".echo Exit functionname ; g\"; .echo Enter functionname; g" 

Avertissement: ceci peut ne pas fonctionner si une exception est levée dans la fonction.

0

Vous pouvez utiliser la commande pt, ce qui veut dire retour au prochain retour. par exemple quand vous frappez votre fonction à la demande, entrez seulement la commande pt frappera le code à l'endroit où le retour a été appelé.