본문 바로가기
파이썬

파이썬 오류 발생시 자동으로 Python 디버거 시작

by º기록 2020. 12. 13.
반응형

이것은 내가 꽤 오랫동안 궁금해했던 질문이지만 적절한 해결책을 찾지 못했습니다. 스크립트를 실행하다가 IndexError를 발견하면 파이썬은 오류의 줄, 위치 및 빠른 설명을 인쇄하고 종료합니다. 오류가 발생하면 자동으로 pdb를 시작할 수 있습니까? 파일 맨 위에 추가 import 문을 두거나 몇 줄의 코드를 추가하는 것에 반대하지 않습니다.

 

해결 방법

 


import pdb, traceback, sys

def bombs():
    a = []
    print a[0]

if __name__ == '__main__':
    try:
        bombs()
    except:
        extype, value, tb = sys.exc_info()
        traceback.print_exc()
        pdb.post_mortem(tb)


import traceback, sys, code

def bombs():
    a = []
    print a[0]

if __name__ == '__main__':
    try:
        bombs()
    except:
        type, value, tb = sys.exc_info()
        traceback.print_exc()
        last_frame = lambda tb=tb: last_frame(tb.tb_next) if tb.tb_next else tb
        frame = last_frame().tb_frame
        ns = dict(frame.f_globals)
        ns.update(frame.f_locals)
        code.interact(local=ns)

 

참조 페이지 https://stackoverflow.com/questions/242485

 

 

반응형

댓글