2012-06-25 6 views
9

많은 중첩 루프가있는 Python 프로그램을 시작했으며 프로그램에 며칠이 소요됩니다. 방금 루프 값 중 하나가 잘못되어 무한 루프가 발생한다는 사실을 깨달았습니다.실행중인 python 프로그램 수정

제로에서 프로그램을 다시 시작하고 싶지 않습니다. 현재 프로그램을 인터럽트하고 루프 범위를 수정하여 올바르게 작동하고 무한 루프로 트랩되어 중단되는 경우가 있습니다.

많은 도움에 감사드립니다.

+2

몇 가지 힌트는 [here] (http://wiki.python.org/moin/DebuggingWithGdb)를 참조하십시오. – georg

답변

1

프로그램이 상태 나 결과를 수시로 저장하는 경우 이미 실행 된 단계를 건너 뛰는 논리를 추가 할 수 있습니다.

그렇지 않으면 변경 방법이 없습니다.

0

꽤 오래된 기사 같아서 지금 막 나온 것 같습니다. 경우 당신은 여전히 ​​다음 당신이 할 수있는 시도하려는 :

스크립트가로 PDB에서 실행 확인 : 파이썬 -m PDB

이 PDB에서 실행됩니다. pdb를 입력 한 후 'c'(계속) 명령을 입력하십시오. 그러면 프로그램이 시작됩니다.

무한 루프가 발생하면 Ctrl + C 만 누르면 디버거 내에서 프로그램이 중지됩니다. 이제 원하는 파이썬 문을 실행할 수 있습니다. 아마도 새 스크립트를 정의하여 해당 스크립트를 가져 오거나 해당 스크립트 나 종료에서 함수를 실행할 수도 있습니다.

항상 디버거로 실행하는 것은 좋지 않지만, 적어도 위의 내용은 의도 한대로 해결 될 것이라고 생각합니다.