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?
6
A
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.
3
Voici ce que vous cherchez exactement
Get function return values and profiling information in .NET using Windbg
Il est expliqué comment définir un point de rupture sur la fonction retour
Le sam e est applicable pour le code natif également.
Espérons que cela aide.
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é.