使っているLinuxディストリビューションはArch Linuxです。多分systemdを使っている環境ならsystemd-coredumpctlでcoreを取れると思いますが未確認です。。。
こんな感じで色々とやられています。
masami@saga:~/debug/usr$ sudo journalctl -b -r -p 2 -- Logs begin at Fri 2013-11-01 02:34:09 JST, end at Thu 2013-11-07 01:06:23 JST. -- Nov 07 00:54:04 saga systemd-coredump[6382]: Process 6337 (tmux) dumped core. Nov 07 00:52:34 saga systemd-coredump[6001]: Process 5956 (tmux) dumped core. Nov 07 00:51:48 saga systemd-coredump[5827]: Process 5785 (chromium) dumped core. Nov 07 00:51:19 saga systemd-coredump[5581]: Process 5532 (tmux) dumped core. Nov 07 00:47:01 saga systemd-coredump[2439]: Process 2404 (tmux) dumped core. Nov 07 00:41:26 saga systemd-coredump[1058]: Process 1009 (tmux) dumped core. Nov 07 00:31:53 saga systemd-coredump[24759]: Process 24686 (tmux) dumped core. Nov 07 00:30:55 saga systemd-coredump[24361]: Process 24319 (chromium) dumped core. Nov 07 00:30:10 saga systemd-coredump[24013]: Process 23872 (tmux) dumped core. Nov 07 00:29:09 saga systemd-coredump[23694]: Process 814 (tmux) dumped core. Nov 07 00:21:45 saga systemd-coredump[21336]: Process 21294 (chromium) dumped core. Nov 06 23:58:57 saga systemd-coredump[14005]: Process 13962 (chromium) dumped core. Nov 06 23:48:23 saga systemd-coredump[11143]: Process 11095 (chromium) dumped core. Nov 06 23:44:50 saga systemd-coredump[10092]: Process 10048 (chromium) dumped core.
ログからはcoreを吐いたのが確認できますが、これがどこに置かれているかが疑問になりますね。
Arch Linuxのフォーラムによると どうもsystemd環境ではcoreファイルは作成されずにjournalに保存しているのでそこから取り出す形という答えがありました。
ということで試してみます。
まずはcommandにlistを付けて一覧表示。
masami@saga:~/debug/usr$ sudo systemd-coredumpctl list TIME PID UID GID SIG EXE Fri 2013-11-01 07:19:56 JST 2643 1000 1000 11 /usr/lib/chromium/chromium Fri 2013-11-01 09:12:44 JST 1571 1000 1000 11 /usr/lib/chromium/chromium Fri 2013-11-01 12:56:19 JST 16973 1000 1000 11 /usr/lib/chromium/chromium Fri 2013-11-01 13:24:05 JST 26555 1000 1000 11 /usr/lib/chromium/chromium ~中略~ Thu 2013-11-07 00:47:01 JST 2404 1000 1000 6 /usr/bin/tmux Thu 2013-11-07 00:51:19 JST 5532 1000 1000 6 /usr/bin/tmux Thu 2013-11-07 00:51:48 JST 5785 1000 1000 11 /usr/lib/chromium/chromium Thu 2013-11-07 00:52:34 JST 5956 1000 1000 6 /usr/bin/tmux Thu 2013-11-07 00:54:04 JST 6337 1000 1000 6 /usr/bin/tmux
例えばpid 6337のcoreファイルを取得するにはcommandにdumpです。出力ファイル名の指定は-oオプションで。
masami@saga:~/debug/usr$ sudo systemd-coredumpctl dump 6337 -o core.6337 TIME PID UID GID SIG EXE Thu 2013-11-07 00:54:04 JST 6337 1000 1000 6 /usr/bin/tmux More than one entry matches, ignoring rest.
もちろんgdbの-cオプションにこのコアファイルを指定できます。
masami@saga:~/debug/usr$ ls core.6337 core.6337 masami@saga:~/debug/usr$ file core.6337 core.6337: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from '/usr/bin/tmux' masami@saga:~/debug/usr$ gdb -c ./core.6337 [New LWP 6337] warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000 Core was generated by `/usr/bin/tmux'. Program terminated with signal 6, Aborted. #0 0x00007ffff71a03d9 in ?? () (gdb) bt #0 0x00007ffff71a03d9 in ?? () #1 0x00007ffff71a17d8 in ?? () #2 0x0000000000000020 in ?? () #3 0x0000000000000000 in ?? ()