1
명령을 통해 파이썬 스크립트의 출력을 필터링하고 동시에 pdb.set_trace()
을 정상적으로 사용할 수 있습니다.재 할당 된 sys.stdout으로 파이썬 pdb.set_trace()를 사용하는 방법은 무엇입니까?
나는이 스크립트를 실행
#!/usr/bin/python
import sys, os, pdb
print "first line"
sys.stdout = os.popen('./filter', 'w')
#pdb.set_trace()
print "second line"
print "third line"
을하고 filter
스크립트는 이것이다 :
#!/usr/bin/python
import subprocess, sys
subprocess.call('cat', stdout=sys.stdout, stderr=sys.stderr, shell=True)
모든 것이 잘 작동, 나는 터미널의 출력을 참조하십시오. 그러나, set_trace
행의 주석을 제거 할 때 디버거가 중단되어 명령을 사용할 수 있지만 전체 프로그램이 존재할 때까지 출력이 표시되지 않으므로 대화식 디버깅이 중단됩니다.
대화 형 디버깅이 작동하도록 filter
을 변경하는 방법은 무엇입니까?
감사합니다.하지만 그렇게 할 수 없습니다. 스크립트를 변경하거나 사용자가'mypdb '를 사용할 것을 요구할 수 없습니다. 필터 만 변경할 수 있습니다. –