일부 코드에는 gfortran이 사용됩니다. 잠시 동안 나는 버그를 찾아 내려고 시도하여gfortran은 부동 소수점 예외에 대해 경고합니다.
-ffpe-trap=zero,overflow,invalid
으로 컴파일 중이었습니다. 이로 인해 프로그램 실행이 즉시 중단됩니다. FPE가 정상적인 경우가 있으므로 다음과 같은 플래그가 표시됩니다.
-ffpe-warn=zero,overflow,invalid
매우 유용합니다. gfortran (또는 다른 컴파일러)이 이와 같은 것을 제공합니까? 그렇지 않은 경우 해결 방법이 있습니까? 현재의 생각은 경고를 작성하는 신호 처리기를 등록하는 C 함수를 만드는 것입니다. 경고를 작성하는 방법에 대해서는 알지 못합니다.
이 추정 런타임 경고 메커니즘은 어떻게 작동합니까? –
gfortran은 (비교적 새로운) ieee_arithmetic 내장 모듈을 제공합니까? 그렇다면 Fortran에서 f-p '오류'트래핑을 수행하는 데 필요한 도구를 제공합니다. –
@DavidHefferman 런타임 예외가 발생하면 실행이 중지되고 예외가 발생한 위치와 프로그램이 종료되는 위치에 대한 메시지가 인쇄됩니다. 예외가 발생했을 때 (stderr에 대한 메시지 일 가능성이있는 경우) 알림을 받고 싶습니다. 실행을 계속할 수 있습니다. 어쩌면 그건 불가능합니다 ... 나는이 일들이 어떻게 작동하는지에 대해 너무 많이 알지 못합니다 ... – mgilson