問題のあるソース行を見つけるには、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)
|