POSIX タイマー (timer_create
とを使用timer_settime
) を使用していて、コードのどこかでセグ フォールトが発生すると、コア ダンプ ファイルが生成されません。これをテスト フォールト (ヌル ポインターを使用) でテストしました。
コメント アウトtimer_settime
してセグ フォールト (null ポインターの使用) を実行すると、コア ダンプ ファイルが作成され (したがって、ulimit が事実上正しく設定されます)、他のすべてが問題ないことが検証されます。
timer_create
sigevent を に設定して呼び出されるNULL
ため、デフォルトSIGALRM
が使用されます。
より詳しい情報
特定のシステム (すべて Ubuntu 12.04) で、コア ファイル DO が生成されることがわかりました。ただし、他のものではありません (特に VM で推測として実行する場合)。すべてのプラットフォームで、timer_settime を呼び出さず、明示的なセグメンテーション違反 (ヌル ポインターを使用) を使用すると、コア ダンプ ファイルが生成されます。2 つのベア メタルと 2 つの VM (ベア メタルごとに 1 つ) をテストしました。ベア メタルの 1 つで VM を実行し、ベア メタルでプログラムを使用してもコア ダンプは生成されませんでしたが、VM を停止するとファイルが生成されました。すべての物理には 8 GB の RAM があり、プログラム Vm は数 MB です。