問題のあるソース行を見つけるには、dbx を使用してセグメント例外が発生したソースコード行を検出します。
プログラムを使ってセグメント例外を生成します。
demo% cat WhereSEGV.f INTEGER a(5) j = 2000000 DO 9 i = 1,5 a(j) = (i * 10) 9 CONTINUE PRINT *, a END demo% |
dbx を使用してセグメント例外が発生した行番号を検出します。
demo% f95 -g -silent WhereSEGV.f demo% a.out セグメント例外 demo% dbx a.out a.out のシンボル情報を読んでいます シグナル SEGV でプログラムが停止しました (セグメント侵害) (dbx) run 実行中: a.out シグナル SEGV (障害アドレスにマッピングがありません) ファイル "WhereSEGV.f" の行番号 4 の MAIN で 4 a(j) = (i * 10) (dbx) |