2017-03-28 3 views
1

ipdb을 사용하여 코드를 디버깅하고 싶습니다. b(reak) file:lineno으로 특정 줄에있는 파일의 코드를 멈출 수 있다는 것을 알고 있습니다. 이 명령은 줄 'no'에 file에 중단 점을 설정합니다.특정 디렉토리의 모든 파일에 대한 중단 점

사실, 특정 파일에 import ipdb; ipdb.set_trace()을 삽입했습니다. 명령어 s(tep)을 사용할 때마다 실행되고 함수로 들어갑니다. 내 문제는 내가보고 싶은 것을보기에는 너무 느리다는 것이다. stacktrace는 내가 꼭보고 싶지 않은 라인을 보여주었습니다. 그런 다음 특정 디렉토리 (예 : b mydirectory/**)의 모든 파일에 중단 점을 넣으려고했습니다. 따라서, 매번 c을 실행할 때마다보고 싶은 모든 행이 표시됩니다. 그러나 해당 명령 (예 : b mydirectory/**)을 실행할 수 없습니다. 누구든지이 문제에 대한 해결책을 제시 할 수 있습니까?

감사합니다.

P. 다음 picture은 내가보기 싫은 관련없는 파일들을 보여줍니다. 사실, 장고 프로젝트에서 일하고 있기 때문에 이러한 파일을 보는 것이 정상입니다.

문제는 불분명 경우

+0

나는 당신의 질문에 대한 답을 가지고 있지 않지만, 난 강력하게 런타임 디버깅을 할 수있는 적절한 IDE를 받고 제안했다. 나는 개인적으로 화환을 많이 좋아하지만 장고와 함께 사용하지는 않았다. IDE에서 프로젝트를 설치하는 데 걸리는 시간은 대개 전반적인 개발 속도에서 꽤 빠르게 회복된다는 것을 이해하십시오. – Eric

+1

@Eric 나는 pycharm을 이미 사용했으며 제한된 IDE입니다. 나는 그것을 사용하고 싶지 않다. 나는 현재 vim을 사용하고 있으며, 그것은 나를 위해 위대하다. –

답변

1
import pdb; pdb.Pdb(skip=['mydirectory.*']).set_trace() 

mydirectory 여기 documentaion

스킵 인수에서 더 많은 정보는, 파이썬 모듈을해야 제발 말해, 주어진 경우,을해야합니다 glob 스타일 모듈 이름 패턴 반복 가능. 디버거는 이러한 패턴 중 하나와 일치하는 모듈에서 을 시작한 프레임을 실행하지 않습니다. [1]

소스 : https://docs.python.org/2/library/pdb.html#pdb.Pdb