2012-06-28 5 views
3

분명히 파이썬으로 디버깅하는 방법을 알지 못했습니다.bpython3이 디버깅되지 않는 이유는 무엇입니까?

나는 bpython3 -i myfile.py을 실행하지만, 예외가 발생했을 때 난 여전히 프로그램 변수에 액세스 할 수없는,도 내가 gdbupdown 같은 모든 명령을 찾을 수 있습니다.

나는 import pdb을 시도해 보았지만 그다지 많이 얻지 못했습니다. 그리고 그것은 확실히 어떤 식 으로든 bpython에 통합되지 않습니다.

내가 기억하는 한, 그것은 gdb처럼 매우 직설적 이었지만 분명히 나는 ​​부주의하게 기억하고있다. 이제 나는 우둔하다. 파이썬 디버거에 관한 온라인 정보는 혼란스럽고 모호하며 이전에 사용했던 것과 비슷한 것을 찾을 수 없으므로 여기에서 묻기로했습니다.

답변

1

bpython3은 대화식 Python 쉘용 인터페이스 일뿐입니다. GDB와 같은 디버깅을 위해 GDB 같은 명령을 지원하는 pdb를 사용

$ python3 -m pdb t.py 
> /tmp/t.py(2)<module>() 
-> def a(): 
(Pdb) c 
Traceback (most recent call last): 
    File "/usr/lib/python3.2/pdb.py", line 1556, in main 
    pdb._runscript(mainpyfile) 
    File "/usr/lib/python3.2/pdb.py", line 1437, in _runscript 
    self.run(statement) 
    File "/usr/lib/python3.2/bdb.py", line 405, in run 
    exec(cmd, globals, locals) 
    File "<string>", line 1, in <module> 
    File "/tmp/t.py", line 2, in <module> 
    def a(): 
    File "/tmp/t.py", line 4, in a 
    b() 
    File "/tmp/t.py", line 7, in b 
    1/0 
ZeroDivisionError: division by zero 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
> /tmp/t.py(7)b() 
-> 1/0 
(Pdb) up 
> /tmp/t.py(4)a() 
-> b() 
(Pdb) print x 
1 

당신이 (3) 디버거로, 당신은 include some glue code해야합니다 bpython 사용합니다.

+0

아직이를 확인할 시간이 없었지만 현상금이 만료 되었기 때문에 어쨌든 보상금을받을 자격이 되길 바라고 있습니다. –

관련 문제