Ubuntu 12.04 では、新しいテキスト ファイルを開き、次のように記述します。
#include <stdlib.h>
int main()
{
abort();
return 0;
}
今実行します:
g++ yourfile.cpp
次に、実行可能ファイルを実行します。これにより、コア ダンプが生成されます。
./a.out
ファイルの mtime を確認します。
-rw-r----- 1 xxxxx xxxxx 228K 2012-10-01 19:20:20.752136399 -0500 core
実行可能ファイルを再度実行します。
./a.out
次に、mtime をもう一度確認します。
-rw-r----- 1 xxxxx xxxxx 228K 2012-10-01 19:20:20.752136399 -0500 core
それは同じだ!新しいコアが古いコアを上書きしないのはなぜですか? 再構築すると、これにより gdb がコアが実行可能ファイルよりも古いと不平を言います。
許可の問題ではないことを確認するために、/tmp の新しいディレクトリでこれを試し、chmod -R 777 **/*
内部で実行しました。実行可能ファイルを 2 回実行しても、新しいコアは生成されませんでした O_o また、ulimit -c
800000000 と報告され、このサイズのコアには十分すぎる値です。
また、クリーンなbashを実行しようとしましたenv - bash --noprofile --norc
が、バイナリを実行しても、最初に削除しない限り、コアのmtimeは更新されません。