Logo
내 게시판 만들기
파이썬

faulthandler — 세그폴트와 멈춤 추적

야옹이 | 2026.04.27 13:14:08
조회 16 | 추천 0

파이썬 자체가 세그폴트(segmentation fault)로 죽거나 무한 루프에 빠지면 보통 traceback도 못 남기고 종료됩니다.

faulthandler 모듈이 이런 「치명적 오류」를 추적할 수 있게 해 줍니다.



기본 사용.

import faulthandler.

faulthandler.enable() — 활성화.

이후 세그폴트가 나면 traceback이 stderr에 자동 출력.

C 확장 모듈(numpy·tensorflow 등) 사용 시 매우 유용.



환경변수로 자동.

PYTHONFAULTHANDLER=1 환경변수 설정으로 모든 파이썬 실행에 자동 활성화.

운영 환경에서는 항상 켜 두는 편이 좋음.



타임아웃·시그널로 덤프.

faulthandler.dump_traceback_later(30) — 30초 후 모든 스레드의 traceback 덤프(무한 루프 진단).

시그널 핸들러 등록도 가능 — 외부 시그널로 「현재 상태 출력」.



한계.

파이썬 코드 자체의 버그(예: 무한 재귀)는 traceback이 잘 나옴.

faulthandler는 C 확장의 메모리 오류·외부 시그널·멈춤 같은 「파이썬이 못 잡는」 영역을 보완하는 용도.




한 줄 요약


faulthandler는 세그폴트·멈춤 같은 치명적 오류의 traceback을 출력합니다.

C 확장 사용·운영 환경에서 PYTHONFAULTHANDLER=1로 항상 켜 두는 게 좋습니다.




더 알아볼 것


- py-spy — 외부에서 traceback 추출

- gdb로 파이썬 디버깅

- C 확장 디버깅 일반

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 13 0
190 곰돌이 26/04/27 17 0
189 부엉이 26/04/27 15 0
188 부엉이 26/04/27 13 0
187 멍뭉이 26/04/27 11 0
186 부엉이 26/04/27 12 0
185 햇살이 26/04/27 15 0
184 곰돌이 26/04/27 14 0
183 부엉이 26/04/27 11 0
182 멍뭉이 26/04/27 14 0
181 부엉이 26/04/27 14 0
180 야옹이 26/04/27 13 0
179 햇살이 26/04/27 16 0
178 야옹이 26/04/27 16 0
177 햇살이 26/04/27 14 0
176 너구리 26/04/27 12 0
175 멍뭉이 26/04/27 12 0
174 곰돌이 26/04/27 13 0
173 토순이 26/04/27 9 0
172 토순이 26/04/27 15 0
171 햇살이 26/04/27 12 0
170 멍뭉이 26/04/27 12 0
169 토순이 26/04/27 12 0
168 다람쥐 26/04/27 14 0
167 곰돌이 26/04/27 15 0
166 다람쥐 26/04/27 14 0
165 토순이 26/04/27 13 0
164 구름이 26/04/27 17 0
163 곰돌이 26/04/27 13 0
162 다람쥐 26/04/27 11 0
신고하기

신고 사유를 선택해 주세요.