人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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 されるようにしたいのですが、その手順・方法を
お教えください。

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

●質問者: naota-inamoto
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pyopyopyo
ベストアンサー

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

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

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

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

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


質問者から

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


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ