gcc/g++のコンパイルで「コンパイラ内部エラー: Segmentation fault」になる場合の対処

gcc/g++のコンパイルで「コンパイラ内部エラー: Segmentation fault」になる場合の対処

Posted at May 26,2017 12:03 AM
Tag:[C++]

gcc/g++のコンパイルで「コンパイラ内部エラー: Segmentation fault」になる場合の対処方法を紹介します。

1.問題点

g++のコンパイルで下記のエラーが発生しました。

% g++ sample.cc
g++: コンパイラ内部エラー: Segmentation fault (プログラム cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.

数日前に同じファイルをコンパイルしたときには正常に終了しました。

が違いが分かりません。

ということで、コンパイルで「コンパイラ内部エラー: Segmentation fault」になる場合の対処方法を紹介します。

2.原因

原因は2つあり、1つはコンパイルしたファイルのサイズがかなり大きかったことでした。

そしてもうひとつは、別の作業でulimitコマンドでスタックサイズの上限を小さく(1000)していたためのようです。

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14622
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14622
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimite

3.対処

スタックサイズを無制限に変更することでエラーが解消しました。

# ulimit -s unlimited
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14622
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14622
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)