A menudo tengo que lidiar con la depuración.A veces establezco un punto de interrupción, pero entiendo que es demasiado tarde y que debemos comenzar de nuevo.Además, antes de comenzar la depuración, preparo los datos, borro la base de datos de registros innecesarios. Todo para olvidar entrar en un método aparentemente inofensivo y comenzar todo el proceso nuevamente.Complicado por el hecho de que tiene que trabajar con código heredado, que a veces es difícil de entender.¿Es posible entender mejor el código confuso? Pero, ¿qué pasa si podemos entender dicho código más rápido que el que lo escribió?MeetPyTrace es un rastreador de depuración de viajes en el tiempo
Las principales diferencias con el depurador tradicional:- Una sesión se graba una vez y puede reproducirla un número infinito de veces.
- Ahora no puede tener miedo de olvidarse de hacer clic en Paso a paso, siempre puede regresar e ir a la función de interés.
- No tiene más sentido usar `print`. Todas las variables son visibles en el inspector en cada momento.
Además, utilizando el gráfico de llamas incorporado, puede "sumergirse" rápidamente en el método de interés y ver lo que realmente sucedió allí:
[Comando] + clic para ampliar la función de interés[Shift] + clic en el método, transferencias por un momento, cuando la función está por regresar.Tutorial de teclas de acceso rápido:( en forma de texto )Lo que se registra en tiempo de ejecución:- Variables locales
- Valores entrantes y retornados
- Tiempo desde que comenzó la grabación
- Pila de llamadas
Además, el contenido de los archivos de origen se escribe en el archivo de reproducción en el momento en que se inicia el depurador.Para probar su proyecto:
1. Instale el paquete pip:pip install pycrunch-trace
2. Añadir decorador rastro sobre el método de interés:from pycrunch_trace.client.api import trace
@trace
def run():
some_code()
3. Ejecute el código!La reproducción se grabará en el directorio de trabajo. Se puede ver usando la aplicación web: app.pytrace.com(los datos no se envían a ninguna parte, todo el trabajo con la grabación se realiza localmente en el navegador) Porlo general, agrego un @trace
atributo a los métodos de Django View.Demo interactiva
Recomiendo pasar por una demostración interactiva para familiarizarse con todas las características.Referencias
Github: aplicación web depaquete Pippara ver sesiones grabadasSitio web:https://pytrace.com/Video de la funcionalidad principal: