RedHat Enterprise Linux 7.2 Workstation で

コンパイラ/リンカーの g++/gcc、デバッガの gdb を使っています。

開発中のアプリケーションが、APエラーを起こした際、
core が dump されれば、
  $ gdb <appname> core
  (gdb) where
で、どこで落ちたか分かると思うのですが、
core が dump されません。

ネットで検索した所、
$ ulimit -c unlimited
をすれば良さそうですが、ulimit コマンドが入っていません。
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/pdf/Kernel_Crash_Dump_Guide/Red_Hat_Enterprise_Linux-7-Kernel_Crash_Dump_Guide-ja-JP.pdf
を参照したのですが、これか分かりませんが、
これに必要な zipl が入っていません。

RedHat Enterprise Linux 7.2 で、開発中のアプリケーションが落ちた時、
core が dump されるようにしたいのですが、その手順・方法を
お教えください。

よろしくお願い申し上げます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2016/10/09 14:48:01
  • 終了:2016/10/11 07:23:08

ベストアンサー

id:pyopyopyo No.1

pyopyopyo回答回数346ベストアンサー獲得回数852016/10/10 01:35:21

shellは何を使っていますか? tcsh などを使っていませんか?

ulimit はbashのビルトインコマンド(bashの内部コマンド)です
実行ファイルとしては存在していないので
bash以外のシェル,たとえばtcshなどを使っている場合は ulimit は使えません
(tcshの場合はlimitコマンドになります)

とりあえず bash を起動してそれから ulimit を実行すれば良いと思います

$ bash
$ ulimit -c unlimited
$ app を実行
$ gdb app core

なお参照している pdf は
アプリではなくカーネルのデバッグ方法に関する説明だと思います
つまり今回は無関係です

その他の回答(0件)

id:pyopyopyo No.1

pyopyopyo回答回数346ベストアンサー獲得回数852016/10/10 01:35:21ここでベストアンサー

shellは何を使っていますか? tcsh などを使っていませんか?

ulimit はbashのビルトインコマンド(bashの内部コマンド)です
実行ファイルとしては存在していないので
bash以外のシェル,たとえばtcshなどを使っている場合は ulimit は使えません
(tcshの場合はlimitコマンドになります)

とりあえず bash を起動してそれから ulimit を実行すれば良いと思います

$ bash
$ ulimit -c unlimited
$ app を実行
$ gdb app core

なお参照している pdf は
アプリではなくカーネルのデバッグ方法に関する説明だと思います
つまり今回は無関係です

id:naota-inamoto

$ which ulimit でなかったので、入ってないと思い込んでいました。
$ ulimit -a, $ ulimit -c unlimited、正しく動作しました。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません