[debugging] 파이썬 pdb-루프 건너 뛰기

을 사용하여 루프를 건너 뛰려면 어떻게 pdb.set_trace()해야합니까?

예를 들면

pdb.set_trace()
for i in range(5):
     print(i)

print('Done!')

pdb루프 전에 프롬프트합니다. 명령을 입력했습니다. 모든 1-5 값이 반환되고 실행 pdb되기 전에 다시 메시지를 받고 싶습니다 print('Done!').



답변

until진술을 시도하십시오 .

루프의 마지막 줄 ( next또는 사용 n)로 이동 한 다음 until또는 을 사용 unt합니다. 루프 바로 뒤의 다음 줄로 이동합니다.

http://www.doughellmann.com/PyMOTW/pdb/ 에 좋은 설명이 있습니다.


답변

루프 뒤에 중단 점을 설정하고 (위의 줄이 main.py라는 파일에 있다고 가정하면 “break main.py:4”) 계속 ( “c”)해야합니다.


답변

허용 된 답변 ( https://pymotw.com/3/pdb/ )에서 언급 한 링크 에서이 섹션이 다소 도움이된다는 것을 알았습니다.

특정 행까지 실행되도록하려면 행 번호를 until 명령에 전달하십시오.

다음은 re : 루프가 작동하는 방법의 예입니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

추가 중단 점을 생성해야하고 루프의 끝으로 이동해야하는 두 가지 작업에서 벗어날 수 있습니다 (특히 디버거를 다시 실행하지 않고는 할 수 없을 정도로 이미 반복했을 때).

.NET에 대한 Python 문서는 다음과 같습니다 until. Btw pdb++표준 디버거 (따라서 형식화)의 드롭 인으로 사용 하고 있지만 until둘 다에서 동일하게 작동합니다.


답변

루프 뒤에 다른 중단 점을 설정하고 다음을 사용하여 (디버깅 할 때) 점프 할 수 있습니다 c.

pdb.set_trace()
for i in range(5):
    print(i)

pdb.set_trace()
print('Done!')


답변

내가 이것을 올바르게 이해했다면.

이를 수행하는 한 가지 가능한 방법은 다음과 같습니다.

당신이 당신을 얻으면 pdb 프롬프트를 . 그냥 히트 n루프를 종료 (다음) 10 회.

그러나 나는 루프를 종료하는 방법을 모릅니다. pdb .

r그래도 기능을 종료하는 데 사용할 수 있습니다 .


답변