2013-11-25 6 views
1

파이썬으로 개발할 때 종종 특정 메서드를 디버깅하려고합니다.이 경우 대화식 콘솔이나 디버깅 대화 형 콘솔에서 메서드를 호출하는 것이 좋습니다. 그러나 메서드가 PTVS의 대화 형 창에서 호출되면 해당 메서드의 중단 점에서 중지되지 않습니다.PTVS의 대화식 창에서 호출 된 메소드를 디버그 할 수 있습니까?

가능한 경우 알려주세요. 그렇지 않은 경우이 기능을 요청하고 주 스크립트에서 호출하는 것보다 특정 메서드를 디버깅하는 빠른 방법이 있는지 알고 싶습니다.

나는 Visual Studio에서 PTVS 2.0 RC를 사용하고 2013 궁극적 인

답변

2

파이썬 대화 창을 일반 (비 디버그)를 사용할 때, 당신은 실제로 사용하여 실행중인 python.exe를 프로세스 VS을 첨부 할 수 있습니다 디버그 -> 프로세스에 연결. 대화가 완료되면 대화식 창에서 예를 들어 중단 점을 치면 디버거가 해당 중단 점에 도달합니다.

까다로운 부분은 중단 점이 해결되는 방식으로 파일에서 코드를로드하는 것입니다. 특히 $load REPL 명령은 원래 파일 컨텍스트를 보존하지 않고 파일을 읽고 REPL에서 줄 단위로 추출하기 때문에 작동하지 않습니다. 필요한 것은 Python 기능을 사용하여 스크립트를로드하는 것입니다. import 또는 open + exec

거기에 몇 가지 문제가 있습니다. 중단 점에서 일시 중지 될 때마다 REPL 창이 응답하지 않게됩니다.

+0

아, 알겠습니다. 그것은 멋진 트릭입니다. 감사합니다. REPL이 응답하지 않는 것은 부끄러운 일입니다. 다음을 수행 할 수 있다면 정말 좋을 것입니다 : _ 메소드 a'_의 중단 점에서 멈추고 디버그 대화 형 창에서'메소드 b '를 호출하고 디버거를 메소드 b의 모든 중단 점에서 중지하게하십시오 '를 호출 한 다음,'method b'의 컨텍스트에서 디버그 대화 형 창에서'method c'를 호출하십시오. 이것은 Matlab에서 디버거가 작동하는 방식이며, 개발할 때 이러한 "중첩 된 중단 점"을 사용하는 데 익숙해졌습니다. –

+0

일반적인 대화식 창을 python.exe에 연결하고'method a'를 호출 한 후 중단 점에서 멈추면 REPL이 응답하지 않게되지만 디버그 대화식 창으로 전환하여 다음과 같은 지역 변수로 재생할 수 있습니다. 매우 시원합니다. –