Come mettere un punto di interruzione al termine di una funzione in WinDbg, in modo che non ho bisogno di modificarla, anche se sono stati aggiunti alcune linee / cancellata la fonte?

StackOverflow https://stackoverflow.com/questions/2566166

Domanda

Ho bisogno di registrare alcuni dati quando alcune funzioni sono colpiti, sia all'inizio di esecuzione e e alla fine di esso. Mentre non ho alcun problema con mettere i punti di interruzione all'inizio delle funzioni (utilizzando bu [module]!functionname, non so come mettere un punto di interruzione alla fine di una funzione, in modo che io non necessità di modificare l'ogni punto di interruzione aggiungo / somelines Elimina dal file / la funzione. sono sicuro che il suo uno scenario molto comune, solo che non so come il suo fare !! Can chiunque elucidate?

È stato utile?

Soluzione

È possibile utilizzare il punto di interruzione all'inizio della funzione per impostare il punto di interruzione presso l'indirizzo del mittente. In questo modo:

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

Avvertimento:. Questo potrebbe non funzionare se viene generata un'eccezione nella funzione

Altri suggerimenti

Qui è esattamente quello che stai cercando

Ottenere valori di ritorno delle funzioni e informazioni di profilazione in .NET utilizzando Windbg

Si è spiegato come impostare un break-point sul ritorno della funzione

Lo stesso è applicabile per il codice nativo anche.

Spero che questo aiuti.

è possibile utilizzare il comando pt, il che significa che passo per il prossimo ritorno. per esempio quando si colpisce la vostra funzione al accattonaggio, digitare il comando solo pt colpirà il codice a whereever di ritorno è stato chiamato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top