プログラムが例外を受け取る原因は数多く考えられます。問題を見つける方法の 1 つとして、ソースプログラムで例外が発生した行番号を検出して調べる方法があります。
-ftrap =%all によってコンパイルすると、すべての例外に対してトラップが強制的に行われます。
demo% cat wh.f call joe(r,s) print *, r/s end subroutine joe(r,s) r=12. s=0. return end demo% f77 -g -o wh -ftrap=%all wh.f wh.f: MAIN: joe: demo% dbx wh wh の読み込み中 ld.so.1 の読み込み中 ..... (dbx) catch FPE (dbx) run 実行中: wh (プロセス id 23464) mb.so.1 の読み込み中 wcwidth.so.1 の読み込み中 シグナル FPE (ゼロによる浮動小数点徐算) 関数 MAIN 行番号 2 ファイル "wh.f" 2 print *, r/s (dbx)