나는'm 확실하지 않으면 내가 무엇'm 요청이 가능한 모든지만,이후 파이썬은 통역 수 있습니다. 나는'm 만들려고 변화하는 오픈 소스 프로젝트만 있기 때문에 더 유형에 python it's 을 알고 어려운 변수가 있으로 데이터가 무엇인지 알 수 있습니다. 할 수 있't just look up the documentation var's 입력할 수 있기 때문'해야 합니다 그것이 어떤 종류입니다. 고 싶은 드롭게 터미널 할 수 있도록 빠르게 검사하 유형 변수의 그들은 무엇을 입력하여 도움(var)또는 인쇄(var). 내가 이것을 할 수 있을 변경하여 코드고 다시 프로그램을 실행하는 각하시는 것이 훨씬 느리게됩니다.
Let's 가 프로그램:
def foo():
a = 5
my_debug_shell()
print a
foo()
my_debug_shell 기능이 나는'm 요구에 대해입니다. 그것은 나에게 하는'>>>'쉘의 파이썬할 수 있는 도움말을 입력(a),그리고 그것은 내게 말할 것입니다 정수입니다. 그때 나는 형식'a=7',일부는'계'명령,프로그램을 인쇄 7,5 없기 때문에,내가 그것을 변경.
여기에는 솔루션이지 않는't 코드를 변경해야 하:
python -m pdb prog.py <prog_args>
(pdb) b 3
Breakpoint 1 at prog.py:3
(pdb) c
...
(pdb) p a
5
(pdb) a=7
(pdb) ...
에서 짧은:
시작 프로그램 디버거에서 제어 -브레이크 포인트를 설정에서 지정된 코드의 라인 -프로그램을 실행하는점 -당신은 당신을 얻을 대화형 프롬프트는's 당신은 당신이 원하는 무엇(입력'help'에 대한 모든 옵션)
A한-라인부분적인 해결책은 단순히 넣어1/0
당신이 원하는 곳 중단점 이 예외를 발생시키는 것에 의해 발견되고 디버거. 두는 이러한 접근법의 장점은:
-점이 설정 방법에 대해 강력한 코드 수정(에 의존하지 않은 특정 라인 수);
하이 필요하지 않가져오기 pdb
에서 모든 프로그램 디버깅할;할 수 있는 대신 직접 삽"점"이 필요합니다.
을 잡기 위해 예외를 자동으로 단순히 할 수 있python-m pdb prog.py...
,그리고 유형c
(ontinue)기 위해서는 프로그램을 시작합니다. 을 때1/0
에 도달하면 프로그램을 종료,하지만 변수를 조사할 수 있습으로pdb
디버거(p my_var
). 지금 이를 허용하지 않을 수정하는 것 and 유지 running 프로그램입니다. 대신할 수 있습려고 버그를 수정하고 프로그램을 다시 실행합니다.
를 사용하려면 강력한만큼쉘,만큼-pdb prog.py...
같은 일이지만,리만큼's 은 더 나은 디버거 인터페이스입니다. 또는,당신은 모든 것을 할 수 있습니다 내에서만큼 쉘:
-에만큼 설정,"디버그에는 예외"의 형태만큼(%pdb
).
-프로그램을 실행에서만큼으로%실행 prog.py...
. 예외가 발생하면,디버거가 자동으로 활성화되고 검사할 수 있는 변수,등등.
의 장점 이 후자의 접근 방식은(1)만큼 포탄은 거의해야 하며(2)이 설치되면,디버깅을 쉽게 할 수 있습을 통해 그것은(대신 직접을 통해 pdb 모듈). 전체 문서에서 사용할 수 있는만큼 페이지입니다.