Perl에서 Carp::confess
같이 스택 백 트레이스를 표시하도록 치명적인 오류를 강제로 생성하는 방법이 있습니까?Perl의 모든 치명적인 오류에 대해 스택 백 추적을 강제로 수행하려면 어떻게해야합니까?
use warnings FATAL => 'all';
을 사용하면 현재 어휘 범위에서 경고가 치명적일 수 있습니다.
$SIG{__WARN__} = sub { CORE::die(@_) };
을 사용하면 SIGWARN 처리기를 현지화하지 않은 모든 곳에서 모든 경고를 치명적으로 만들 수 있습니다.
깨끗한 방법이 있습니까, 아니면 SIGDIE를 조정해야합니까? 그리고 만약 SIGDIE 핸들러를 작성한다면, 트레이스를 얻는 가장 좋은 방법은 무엇입니까?
이상적인 솔루션은 표준 테스트 라이브러리 Test::More
및 친구들과 함께 작동합니다.
업데이트 : Mark Johnson은 SIGDIE 처리기를 사용하여 Carp::confess
을 호출 할 것을 제안합니다. 그것은 잘 작동합니다. 코드는 다음과 같습니다.
동일한 질문, 답변 : [Perl 응용 프로그램에서 모든 'die'를 '고백'으로 바꾸려면 어떻게해야합니까?] (http://stackoverflow.com/q/1877638/269126) – Lumi