Cómo mostrar la salida de 'l' en python pdb después de cada comando ingresado
Pregunta
Me gustaría que la salida del comando python pdb 'l' se imprima en la pantalla después de cada comando que ingrese en una sesión de depuración interactiva.
¿Hay alguna manera de configurar Python pdb para hacer esto?
Solución
Una forma de hacer esto es crear un alias de tus comandos favoritos para ejecutar el comando y luego l.
por ejemplo
(Pdb) alias s step ;; l
(Pdb) s
> /usr/lib/python2.5/distutils/core.py(14)<module>()
-> from types import *
9 # This module should be kept compatible with Python 2.1.
10
11 __revision__ = "$Id: core.py 38672 2005-03-20 22:19:47Z fdrake alias s step ;; l
quot;
12
13 import sys, os
14 -> from types import *
15
16 from distutils.debug import DEBUG
17 from distutils.errors import *
18 from distutils.util import grok_environment_error
19
En tu ~ / .pdbrc puedes agregar los alias para tenerlos siempre:
<*>Otros consejos
';;' permitir separar comandos
[crchemist@test tmp]$ python t.py
> /home/crchemist/tmp/t.py(7)()
-> a()
(Pdb) p a ;; l
function a at 0xb7e96df4
2 b = 49 + 45
3 v = 'fff'
4 return v
5
6 import pdb; pdb.set_trace()
7 -> a() [EOF]
(Pdb) s ;; l
--Call--
> /home/crchemist/tmp/t.py(1)a()
-> def a():
1 -> def a():
2 b = 49 + 45
3 v = 'fff'
4 return v
5
6 import pdb; pdb.set_trace()
7 a() [EOF]
(Pdb) s ;; l
> /home/crchemist/tmp/t.py(2)a()
-> b = 49 + 45
1 def a():
2 -> b = 49 + 45
3 v = 'fff'
4 return v
5
6 import pdb; pdb.set_trace()
7 a() [EOF]
(Pdb)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow