このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
終了ハンドラーが異常終了しました
プログラムの正常な実行に割り込む終了ハンドラー関数
説明
この欠陥は、プログラムで想定されている終了順序に割り込む関数が終了ハンドラー自体によって呼び出され、異常終了が引き起こされた場合に発生します。
終了ハンドラーは、プログラムが終了したときに実行するように指定された関数です。この関数は、
atexit
、(WinAPI)_onexit
、at_quick_exit()
などの特定の関数で最初に登録されます。異常終了の原因となる可能性がある関数には、
exit
、abort
、longjmp
、(WinAPI)_onexit
などがあります。
リスク
終了ハンドラーによってプログラムが終了される場合、未定義の動作になる可能性があります。プログラムの異常終了は、他の終了ハンドラーが呼び出されていないことを意味します。このような追加の終了ハンドラーでは、追加のクリーン アップやその他の必要な終了手順が行われる可能性があります。
修正方法
終了ハンドラーが正常終了するのを妨げる関数呼び出しを終了ハンドラー内から削除します。
例
結果情報
グループ: プログラミング |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: EXIT_ABNORMAL_HANDLER |
影響度: Medium |
バージョン履歴
R2016b で導入