Saltar al contenido

python: Cómo rastrear el orden de ejecución de la función en un proyecto grande

Solución:

rastro

El módulo de rastreo le permite rastrear la ejecución del programa, generar listas de cobertura de declaraciones anotadas, imprimir relaciones entre llamador y destinatario y listar funciones ejecutadas durante la ejecución de un programa. Se puede utilizar en otro programa o desde la línea de comandos.

python -m trace --count -C . somefile.py ...

Lo anterior se ejecutará somefile.py y generar listados anotados de todos los módulos de Python importados durante la ejecución en el directorio actual.

PDB

El módulo pdb define un depurador de código fuente interactivo para programas Python. Admite la configuración (condicional) de puntos de interrupción y el paso único en el nivel de la línea de origen, la inspección de marcos de pila, la lista de código fuente y la evaluación de código Python arbitrario en el contexto de cualquier marco de pila. También es compatible con la depuración post-mortem y se puede llamar bajo el control del programa.

Comando más utilizado:

dónde)

  • Imprima un seguimiento de la pila, con el fotograma más reciente en la parte inferior. Una flecha indica el marco actual, que determina el contexto de la mayoría de los comandos.

abajo)

  • Mueve el marco actual un nivel hacia abajo en el seguimiento de la pila (a un marco más nuevo).

hasta)

  • Mueve el marco actual un nivel hacia arriba en el seguimiento de la pila (a un marco más antiguo).

También puede consultar esta pregunta Consejos de depuración de Python

Cobertura

Coverage.py mide la cobertura del código, normalmente durante la ejecución de la prueba. Utiliza las herramientas de análisis de código y los ganchos de seguimiento proporcionados en la biblioteca estándar de Python para determinar qué líneas son ejecutables y cuáles se han ejecutado.

Cazador

Hunter es un conjunto de herramientas de rastreo de código flexible, no para medir la cobertura, sino para depurar, registrar, inspeccionar y otros propósitos nefastos.

La acción predeterminada es simplemente imprimir el código que se está ejecutando. Ejemplo:

import hunter
hunter.trace(module="posixpath")

import os
os.path.join('a', 'b')

Resultado en terminal:
Resultado del cazador en la terminal

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *