過去ログ
No.593.Segmentation fault (core dumped)とは?
[戻る]
[ホームページ]
No.5623
エラーの意味がわかりません・・・
投稿者---あゆ(2003/03/26 12:40:48)
コンパイルはうまくいくんですけど、
実行すると
Segmentation fault (core dumped)
というエラーが出てしまいます。
これはどういう意味なのでしょうか?
No.5625
Re:エラーの意味がわかりません・・・(Segmentation fault)
投稿者---kikk(2003/03/26 14:53:26)
ども。
>Segmentation fault (core dumped)
アクセスが禁止されているメモリ領域(Segment)にアクセスしました。
(メモリの様子を(coreファイルに)吐き出しておきました)
というよう感じでしょうか。
おそらく、配列の添え字が範囲を超えたとか、初期化していないポインタで
メモリ参照をした、free()した領域をアクセスした、等が原因になると思います。
また、非常に大きなローカル変数(配列)を確保したときにも発生します。
デバッガを使いステップ実行するか、assert()やprintf()等で変数の値を
表示しつつどこまでは実行できたかを確認し、不正なメモリアクセスの
場所を特定・修正してください。
それと、C FAQ
http://www.catnet.ne.jp/kouno/c_faq/c16.html#8
も参考にしてください。
なお、生成されるcore(またはstackdump)ファイルはデバッグに使わないので
あれば削除してかまいません。
ちなみにcoreは、昔、メモリに使っていたものです。メモリが現在のような
半導体ではなかったころ、1bitを1つのコア(1mmくらいのドーナツ型の磁性体)
で保持し、それを電流の流れる金網にまとめたものを1次記憶装置として
使っていました。
では。