Más o menos lo que dice el título, me gustaría poder conectarme a un proceso de Python que se ejecute en modo paster o uwsgi y utilizar la funcionalidad pdb.
Editar: Usar Liclipse 1.2.1 en lugar de 1.3.0 o 1.4.0 funciona bien. El registro de cambios indica las actualizaciones de Pydev 3.9.1 y Eclipse 4.4.1 para 1.3.0. Parece romper el debug de registro. Usando el depurador de Liclipse y Pydev (y CPython) con el siguiente ejemplo de código, obteniendo ese error: logging.config.dictConfig(config) File “C:\Python27\lib\logging\config.py”, line […]
¿Hay alguna forma en Linux de verificar qué está haciendo un proceso de demonio de Python en ejecución? Es decir, ¿sin instrumentar el código y sin terminarlo? Preferiblemente me gustaría obtener el nombre del módulo y el número de línea que se está ejecutando actualmente. Las herramientas de depuración convencionales como strace, pstack y gdb […]
Al perfilar nuestro código me sorprendió encontrar millones de llamadas a C: \ Python26 \ lib \ encodings \ utf_8.py: 15 (decodificar) Comencé a depurar y descubrí que en nuestra base de código hay muchos errores pequeños, que generalmente comparan una cadena con un unicode o que agregan una cadena y un unicode. Python decodifica […]
PDB (y otros depuradores de Python) tienen una forma sencilla de ver el valor de cualquier variable actual, simplemente escribiéndolo. Sin embargo, a veces trabajo con bibliotecas que no almacenan sus valores de retorno en variables intermedias. Aquí hay una función de ejemplo: def do_stuff(*args, **kwds): return f(*args, **kwds) Después de regresar de f, ¿cómo […]
Descubrí que la aseveración de Python es una buena manera de detectar situaciones que nunca deberían suceder . Y se puede eliminar mediante la optimización de Python cuando se confía en que el código sea correcto. Parece ser un mecanismo perfecto para ejecutar aplicaciones de Python en modo de depuración. Pero mirando varios proyectos de […]
Entonces, estoy desarrollando esta clase que tiene un indexador. Me gustaría lanzar (o “subir”, en la jerga de Python) una excepción IndexError. Bueno, eso es bastante trivial, if errorCondition: raise IndexError(“index out of range”) Sin embargo, cuando este código se ejecuta en la consola y ocurre un error, el seguimiento de la stack también incluye […]
A veces, mientras estoy depurando se levantará una excepción. Por ejemplo, considere este código: def some_function(): # Pretend this function is in a library… # …and deep within the library is an exception: raise Exception(‘An exception message with valuable information.’) import pdb; pdb.set_trace() try: some_function() # Pretend I am debugging from this point using pdb. […]
Utilizo ipdb bastante a menudo para saltar a un trozo de código aislado, es decir, es difícil escribir un script real que lo use. En su lugar, escribo un caso de prueba mínimo con burla y salto en él. Ejemplar para el flujo de trabajo: def func(): … import ipdb ipdb.set_trace() … def test_case(): … […]
Hasta ahora, me ha resultado imposible producir rastreos utilizables cuando las plantillas de Mako no están codificadas correctamente. ¿Hay alguna forma de depurar plantillas además de iterar para cada línea de código?