2010-04-02 4 views
6

Necesito registrar algunos datos cuando se golpean algunas funciones, tanto al inicio de la ejecución como al final. Aunque no tengo problemas para poner puntos de corte al comienzo de las funciones (usando bu [module]!functionname, no sé cómo poner un punto de interrupción al final de una función, TAL QUE NO necesito editar el punto de interrupción cada vez que agrego/elimino somelines del archivo/función. estoy seguro de que es un escenario muy común, sólo que no sé cómo se hace !! ¿alguien puede aclarar?¿Cómo poner un punto de interrupción al final de una función en windbg, para que no necesite editarlo incluso si se han agregado/eliminado algunas líneas en la fuente?

Respuesta

7

Puede usar el punto de interrupción al inicio de la función para configurar el punto de interrupción en la dirección de retorno. De esta manera:

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

Advertencia: esto puede no funcionar si se produce una excepción en la función.

0

puede usar el comando pt, lo que significa paso a la próxima devolución. por ejemplo, cuando accedes a tu función al principio, ingresa solo el comando pt que golpeará el código en donde se haya llamado.

Cuestiones relacionadas