コンパイラ/リンカーの 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 されるようにしたいのですが、その手順・方法を
お教えください。
よろしくお願い申し上げます。
shellは何を使っていますか? tcsh などを使っていませんか?
ulimit はbashのビルトインコマンド(bashの内部コマンド)です
実行ファイルとしては存在していないので
bash以外のシェル,たとえばtcshなどを使っている場合は ulimit は使えません
(tcshの場合はlimitコマンドになります)
とりあえず bash を起動してそれから ulimit を実行すれば良いと思います
$ bash $ ulimit -c unlimited $ app を実行 $ gdb app core
なお参照している pdf は
アプリではなくカーネルのデバッグ方法に関する説明だと思います
つまり今回は無関係です
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件)