2011-07-25 6 views

答えて

0

通常、コアダンプは、デフォルトのハンドラによって特定の信号に応答して生成されます。そのハンドラを変更すると、レスポンスが変更されるため、コアダンプが得られません。

コアダンプは、障害(SIGSEGV(マッピングされていないメモリへのアクセス)、SIGILL(無効な命令)、SIGBUS(その他の不正なシステムアクセス)など)とSIGABRT信号プログラム自体が致命的なエラーを検出したとき(標準ランタイムでは、アサートから、またはabort()を呼び出して)使用されます。また、他のいくつかの信号についてはデフォルトです。特にSIGUSR1は、プログラムを処理してハンドラを変更する準備ができていない限り、プログラムが受け取るべきではありません。完全なリストについては、man 7 signalを参照してください。

「デフォルトハンドラ」はアプリケーションのコードではないことに注意してください。アプリケーションに代わって何らかの特定の処理を行うべきであることをカーネルに示す特別な値です。このアクションはいくつかのシグナルを終了し、コアダンプを使って終了し、残りのものは何もしません。

関連する問題