On Sun, 24 Feb 2013 23:01:05 +0900 1xx <itsango@gmail.com> wrote:
2013年2月24日 22:34 1xx <itsango@gmail.com>:
昨日のIRCミーティングでもちょっとお話ししたのですが
その際、crash dumpがあれば良いというお話があったと思うのですが、 crash dumpを採取するにはどうすれば良いのでしょうか?
また、一応~/.bashrcの最後に ulimit -c unlimited を記述してあるので、ユーザのコマンドラインレベルでcoreを採取することは 可能だと思うのですが、 openSUSEで、daemonなどシステムレベルでcoreを吐かせる正しい方法が あれば教えてください。
上記をダイレクトに回答すると、 "/etc/security/limits.conf" 内に "* soft core unlimited" という行を追記してシステムを再起動すると、 coreファイルを吐く (= "ulimit -c" で "unlimited" になる) ように なります (openSUSEだけでなく、他のLinuxでも使える方法です) 。 ただし、このままだとプロセス実行時のカレントディレクトリに出力されて しまうので、 "echo /var/crash/core.%e.%u.%t > /proc/sys/kernel/core_pattern" のように出力先のテンプレートを設定しておくと、もっと便利になるでしょう (ただしこちらはシステムを再起動すると元に戻ってしまいます)。 なお、再現がすぐにできるようなものであれば、"gdb (プログラム名)"や "gdb --pid=(PID)" でデバッガを起動し、"generate-core-file"コマンドで出力させ てもよいでしょう。 以上です。 -- Yasuhiko Kamata E-mail: belphegor@belbel.or.jp -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ja+owner@opensuse.org