#navi(../)
* Cプログラムが異常終了したときにコアダンプを出力するように設定する [#ae038c7d]
segmentation faultなどによりプログラムが異常終了したとき、コアダンプのファイルが出力されていない場合は、以下の設定で出力されるようになります。~
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
* 関連記事 [#l1268e40]
-[[EFBIG(errno=27)対処方法>DEBUG/EFBIG(errno=27)対処方法]]
-[[メモリリークなどを探すツール・Electric Fence>DEBUG/メモリリークなどを探すツール・Electric Fence]]
-[[errnoエラー番号に対する説明を表示する方法・strerror>DEBUG/errnoエラー番号に対する説明を表示する方法・strerror]]
-[[C言語ソースコードの行番号を表示する方法>DEBUG/ソースコードの行番号を表示する方法]]
-[[Cプログラムが異常終了したときにコアダンプを出力するように設定する>DEBUG/異常終了したときにコアダンプを出力するように設定する]]
* コアダンプの出力設定確認 [#a7302011]
ターミナルを起動し以下のコマンドを実行してください。
ulimit -a
ulimit -a の出力の上記出力がコアダンプファイルの出力サイズになります。~
この場合、値が0なので出力されません。
core file size (blocks, -c) 0
$ 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) 16046
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) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 16046
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
*コアダンプを出力する設定方法 [#wf5b4ba3]
出力させる方法は以下の操作により可能です。
-デバッグ対象プログラムを起動前にulimitコマンドを実行する(-c以降に最大出力サイズを指定する)
ulimit -c 10000000
-生成するCoreのサイズを制限しない場合は以下のように設定します。
ulimit -c unlimited
-毎回ulimitを設定するのは面倒なので.bashrcなど記述する
viやgeditなどのエディタを起動し.bashrcにulimit -c <値>を追記する。~
以下のように追記しておけば毎回設定する必要がありません。~
以上、プログラム以上終了時にコアダンプを出力する設定方法でした。
#htmlinsertpcsp(c-btm.html,c-sp.html)