¿Cómo poner un punto de interrupción al final de una función en windbg, por lo que no necesita de edición, incluso si se han añadido algunas líneas / borrado en la fuente?
-
23-09-2019 - |
Pregunta
I que entrar algunos datos cuando son golpeados algunas funciones, tanto al inicio de la ejecución y y al final de ella. Si bien no tengo ningún problema con poner puntos de interrupción en el inicio de las funciones (utilizando bu [module]!functionname
, no sé cómo poner un punto de interrupción al final de una función, de tal manera que yo no tenga que editar el cada punto de interrupción agrego / somelines eliminar de la archivo / función. estoy seguro de que es un escenario muy común, sólo que no saben cómo se hace !! ¿alguien puede elucidar?
Solución
Se puede utilizar el punto de interrupción en el inicio de la función para configurar el punto de corte 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
Otros consejos
Esto es lo que está buscando exactamente para
Obtener valores de retorno de la función e información de perfiles de .NET utilizando WinDbg
Se explica cómo establecer un punto de ruptura en la declaración de la función
Lo mismo es aplicable para el código nativo también.
Espero que esto ayude.
puede utilizar el comando PT, lo que significa el paso a la próxima planilla. por ejemplo, cuando se golpea la función en la que pide, introduzca comando sólo pt golpeará el código en dondequiera que fue llamado de retorno.