모든 명령이 입력 한 후 Python PDB에서 'L'의 출력을 표시하는 방법

StackOverflow https://stackoverflow.com/questions/602599

  •  03-07-2019
  •  | 
  •  

문제

대화식 디버깅 세션에 입력 한 모든 명령 후에 화면에 Python PDB 'l'명령의 출력을 인쇄하고 싶습니다.

이 작업을 수행하기 위해 Python PDB를 설정하는 방법이 있습니까?

도움이 되었습니까?

해결책

이를 수행하는 한 가지 방법은 좋아하는 명령을 별칭하는 것입니다.

예를 들어

(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 $"
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      

~/.pdbrc에서는 별칭을 추가하여 매번 사용할 수 있습니다.

alias s step ;; l

다른 팁

';;' 명령을 별도로 허용합니다


[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)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top