2011-03-02 18 views
24

En el depurador de perl, si repetidamente muestra segmentos de código que lo alejan de la línea actual, puede regresar a la línea actual ingresando el comando . (punto).¿Cómo incluyo la línea actual en Python PDB?

No he podido encontrar nada comparable utilizando el módulo Python PDB. Si yo lista lejos de la línea actual y quiero verla de nuevo, parece que tengo que recordar el número de línea que se estaba ejecutando actualmente (improbable para mí) o ejecutar una declaración (a menudo indeseable).

¿Echo de menos algo?

Respuesta

12

Bueno, creo que no hay un comando similar a . en depurador Perl, pero siempre se puede encontrar la línea actual con el comando where/w. Esto le mostrará tanto el marco actual (contextual) como el marco más reciente, que creo que es donde se desencadenó el depurador.

+0

Yo no pienso en el uso de "donde' para volver. Es menos que ideal, pero sin duda es mejor que nada. Gracias! – zenzic

7

Quizás deberías probar ipython o ipdb, un contenedor para pdb.

ipdb le da líneas numeradas, sintaxis coloreada, finalización de pestañas y más.

+0

IPDB es increíble, pero no es relevante para la cuestión – ospider

25

Tarde pero espero que todavía sea útil. Hacer la siguiente alias:

alias ll u;;d;;l 

Entonces cada vez que escriba ll, PDB, aparecerá una lista desde la posición actual. Funciona subiendo la pila y luego bajando la pila, lo que restablece 'l' para mostrar desde la posición actual. (Esto no funcionará si se encuentra en la parte superior del seguimiento de la pila).

+0

simple y funcionó para mí. Esto debe marcarse como la respuesta! – trinth

+1

Este comando es muy útil. Para ahorrar tiempo, puede agregarlo a un archivo '.pdbrc' para que no tenga que ingresarlo cada vez (descrito [aquí] (https://docs.python.org/3/library/pdb.html#debugger-commands)) –

+0

incluso 'alias. u ;; d ;; l' works ;-) – kxr

Cuestiones relacionadas