このエントリーをはてなブックマークに追加


コアダンプを出力するようにする

segmentation faultなどによりプログラムが停止したとき、コアダンプファイルが出力されていない場合は、以下の設定で出力されるようになります。
デバッグなどで利用してください。


コアダンプの出力設定確認

ターミナルを起動し以下のコマンドを実行してください。

ulimit -a
ulimit-01.gif
core file size          (blocks, -c) 0

ulimit -a の出力の上記出力がコアダンプファイルの出力サイズになります。
この場合、値が0なので出力されません。

コアダンプを出力する設定方法

出力させる方法は以下の操作により可能です。

  • デバッグ対象プログラムを起動前にulimitコマンドを実行する(-c以降に最大出力サイズを指定する)
    ulimit -c 10000000
  • 生成するCoreのサイズを制限しない場合は以下のように設定します。
    ulimit -c unlimited

以下、segmentation faultが出力されるプログラムを作成し実行した結果です。

ulimit-02.gif
  • 毎回ulimitを設定するのは面倒なので.bashrcなど記述する viやgeditなどのエディタを起動し.bashrcにulimit -c <値>を追記する。
    以下のように追記しておけば毎回設定する必要がありません。
    以下の画像はUbuntu8.04の.bashrcです。一番最後に追記してあります。
    ulimit-03.gif

 

添付ファイル: fileulimit-01.gif 4087件 [詳細] fileulimit-03.gif 2604件 [詳細] fileulimit-02.gif 2439件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:29:50