Visual C++ アプリケーションを GCC に移植する作業を行っています (MingW と Linux でビルドする必要があります)。
既存のコードは__try { ... } __except(1) { ... }
、いくつかの場所でブロックを使用しているため、最小限のログを実行せずにプログラムを終了させるものはほとんどありません (おそらくメモリ不足タイプのエラーを除いて?)。
GCCで同様のことを行うためのオプションは何ですか?
編集:Visual Studio の /EH オプションへのポインタをありがとう。今必要なのは、Linux でシグナルを処理する方法の例です。2002年からこのメッセージを見つけました。
他にどのようなシグナルSIGFPE
があり、SIGSEVG
注意する必要がありますか? (主に、私が何か間違ったことをしているときに発生する可能性のあるものを気にします)
報奨金情報: アプリケーションが終了する前に、できるだけ多くのエラー状態を自己ログできるようにしたいと考えています。
どのようなシグナルを受け取る可能性があり、エラーメッセージをログに記録することが一般的に不可能なシグナルはどれですか? (メモリ不足、他に何?)
Linux と MingW でコードが少なくとも同じように動作する移植可能な方法で、例外と (最も重要な) シグナルを処理するにはどうすればよいでしょうか。#ifdef でOKです。
失敗をログに記録するラッパー プロセスがない理由は、パフォーマンス上の理由から、ディスクへのデータの書き込みを最後の最後まで保存しておくためです。終了します。