문제

전화 해요 python -m pdb myapp.py, 예외가 발생하고, 일반적으로 문제를 조사하기 위해 PDB 통역사에게 다시 던져 질 때. 그러나이 예외는 내가 전화 한 후에 발생합니다. curses.wrapper() PDB 통역사를 쓸모없는 저주 모드로 입력했습니다. 이 문제를 어떻게 해결할 수 있습니까?

도움이 되었습니까?

해결책

James의 대답은 좋고 나는 그것을 발전 시켰지만 나는 또한 내 프로그램의 논리와 프리젠 테이션 레이어를 나누려는 것을 고려할 것입니다. Curses 부품을 라이브러리 위에 얇은 레이어를 유지하고 올바른 루틴을 호출하여 오류를 재현하는 간단한 드라이버를 작성하십시오. 그런 다음 다이빙을하고 필요한 일을 할 수 있습니다.

내가 생각할 수있는 또 다른 방법은 debug 또는 당신을 일반 화면으로 다시 던지고 PDB를 호출하는 것. 그런 다음 예외를 제기하고 프로그램을 실행하는 코드 바로 전에 고수하십시오. 같은 것

def debug(stdscr):
    curses.nocbreak()
    stdscr.keypad(0)
    curses.echo()
    curses.endwin()
    import pdb; pdb.set_trace()

분명히 이것은 curses.wrapper 기능. 간단히 언급되어 있습니다 http://www.amk.ca/python/howto/curses/.

다른 팁

파이썬에 익숙하지 않으면 이것이 바로 당신이 원하는 것이 아닐 수도 있습니다. 그러나 분명히 WinPDB는 GDB가 실행중인 프로세스 (IIUC)에 캔과 마찬가지로 스크립트에 첨부 할 수 있습니다.

http://winpdb.org/docs/launch-time/

이름으로 오도하지 마십시오. 플랫폼 독립적입니다.

pyclewn을 사용하십시오

당신이 사용할 수있는 pyclewn Vim과 함께. 또는 pdb-clone, pyclewn의 핵심, 좋은 GDB, 원격 디버그를 사용할 수 있습니다.

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