コンテンツにスキップ

Top

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

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

1
$ ulimit -c unlimited

したのに出ない!

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

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

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

coreの出力先を変更する

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

1
2
$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c %d %P %E

とかいう、なんかしらんapportとかになってる。
ので、coreがカレントに出てこない。

1
$ sudo vi /etc/sysctl.conf

して、 一番下にでも

kernel.core_pattern = core.%e.%p

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

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

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

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

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

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

1
2
3
4
5
6
7
$ sudo vi /etc/security/limits.conf

#*               soft    core            0

→

*               soft    core            unlimited

に変更すれば常にunlimitedになる。

以上!