을 사용하여 루프를 건너 뛰려면 어떻게 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
그래도 기능을 종료하는 데 사용할 수 있습니다 .