実行時に重大エラーが発生した場合にスタックトレースを発行します。
-traceback オプションを指定すると、プログラムによって特定のシグナルが生成された場合に、実行可能ファイルで stderr へのスタックトレースが発行されて、コアダンプが実行され、終了します。複数のスレッドが 1 つのシグナルを生成すると、スタックトレースは最初のスレッドに対してのみ生成されます。
追跡表示を使用するには、リンク時に -traceback オプションをコンパイラコマンド行に追加します。このオプションはコンパイル時にも使用できますが、実行可能バイナリが生成されない場合無視されます。-traceback を -G とともに使用して共有ライブラリを作成すると、エラーが発生します。
表 3–9 -traceback オプション
オプション |
意味 |
---|---|
common |
sigill、sigfpe、sigbus、sigsegv、または sigabrt の共通シグナルのいずれかのセットが発生した場合にスタックトレースを発行することを指定します。 |
signals_list |
スタックトレースを生成するシグナルの名前を小文字で入力してコンマで区切ったリストを指定します。sigquit、sigill、sigtrap、sigabrt、sigemt、sigfpe、sigbus、 sigsegv、sigsys、sigxcpu、sigxfsz のシグナル (コアファイルが生成されるシグナル) をキャッチできます。 これらのシグナルの前に no% を付けると、シグナルのキャッチは無効になります。 たとえば、-traceback=sigsegv,sigfpe と指定すると、sigsegv または sigfpe が発生した場合にスタックトレースとコアダンプが生成されます。 |
%none または none |
追跡表示を無効にします。 |
このオプションを指定しない場合、デフォルトは -traceback=%none になります。
値を指定せずに、-traceback だけを指定すると、-traceback=common と同義になります。
注: コアダンプが不要な場合は、次を使用して coredumpsize 制限を 0 に設定できます。
% limit coredumpsize 0 |
-traceback オプションは、実行時のパフォーマンスに影響しません。