コンテンツにスキップ

Top

Ubuntu で core ファイルがでてこない!

はいはい、ulimitの設定してないからでしょ、と、

$ ulimit -c unlimited
したのに出ない!

なんで?コンパイルオプションにちゃんと -g もつけてるし...

と思ってググったら、 apport とかいうわけわからんやつになってしまっている。

わけがわからんものは無効にするのがよいので(笑)、無効にしてカレントディレクトリに出力されるように変更した。

coreの出力先を変更する

coreが出るときのcoreパターンというのを見てみると、

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c %d %P %E
とかいう、なんかしらんapportとかになってる。
ので、coreがカレントに出てこない。

$ sudo vi /etc/sysctl.conf
して、 一番下にでも

kernel.core_pattern = core.%e.%p

を追記すればcoreパターンが変更される。

と思ったら、再起動するたびにapportがゾンビのように復活するので、

$ sudo vi /etc/default/apport
enabled=0

とenabledを1から0にしたらOK。

これで再起動したらcoreがカレントにでる。

毎回ulimit -c unlimitedするのが面倒なら、

$ sudo vi /etc/security/limits.conf

#*               soft    core            0

→

*               soft    core            unlimited
に変更すれば常にunlimitedになる。

以上!