2011-03-02 3 views
24

펄 디버거에서 현재 행에서 멀리 이동하는 코드 세그먼트를 반복적으로 나열하면 . (점)을 입력하여 현재 행으로 되돌아 갈 수 있습니다.어떻게 파이썬 PDB에서 현재 줄을 나열합니까?

파이썬 PDB 모듈을 사용하여 비교할만한 것을 찾을 수 없었습니다. 만약 내가 현재 라인에서 멀리 떨어져 있고 그것을 다시보고 싶다면, 현재 실행되고있는 (줄지 모르는) 행 번호를 기억하거나 (종종 바람직하지 않은) 명령문을 실행해야만하는 것 같습니다.

내가 누락 된 항목이 있습니까?

답변

12

글쎄, 나는 펄 디버거에 .과 비슷한 명령이 있다고 생각하지 않지만, 항상 where/w 명령을 사용하여 현재 줄을 찾을 수 있습니다. 그것은 현재 (컨텍스트) 프레임뿐만 아니라 가장 최근의 프레임을 보여줄 것입니다. 이것은 디버거가 트리거 된 곳입니다.

+0

내가 – zenzic

7

pdb의 래퍼 인 ipython 또는 ipdb을 사용해 보시기 바랍니다.

ipdb에는 번호가 매겨진 줄, 색이 지정된 구문, 탭 완성 등이 있습니다.

+0

ipdb 놀랍습니다! 그것은 아무것도. 감사보다 더 이상적이지,하지만 확실히 낫다. 돌아 가야 "여기서 '를 사용하여 생각하지 않았지만,이 문제와 관련이없는의 – ospider

25

늦었지만 잘하면 여전히 도움이됩니다. 당신이 ll를 입력 할 때마다

alias ll u;;d;;l 

그런 다음, PDB는 현재 위치에서이 나열됩니다 다음 별칭을 확인합니다. 그것은 스택 위로 올라간 다음 스택 아래로 내려 가서 현재 위치에서 보여줄 'l'을 재설정합니다. (스택 트레이스의 맨 위에 있다면이 기능은 작동하지 않습니다.)

+0

간단하고 – trinth

+1

이 명령은 시간을 절약하기 위해'.pdbrc' 파일에 추가 할 수 있으므로 매번 입력 할 필요가 없습니다 ([here] (https://docs.python.org/3/library/pdb.html#debugger-commands)) –

+0

심지어'alias .u ;; d ;; l'는 작동합니다 ;-) – kxr

관련 문제