1

ときどきクラッシュする C++ プロセスがあります (主にパフォーマンス テストの実行時)。コア ログを確認したところ、クラッシュの前に多数の Informix エラーが表示されていました。

Out of Memoryプロセス コア ダンプの前に、例外に関連するエラー コード 406 の一連の Informix エラーが表示されます。エラー コード 244 も表示されます (次の行をフェッチするために物理順序の読み取りを実行できませんでした)。

これらのシナリオがプロセスのコア ダンピングにどのようにつながるかについて、どなたかご意見をお聞かせいただけますか?

詳細

プロセス: マルチスレッド C++ プロセス
環境: Solaris
データベース: Informix with ESQL インターフェイス

ESQL DB 関数 (Insert/Update/Select) がスローされ、プロセスによってキャッチされます。catch ブロック内のメッセージは、プロセス ログに表示される最後のメッセージです。その後のプロセスについての手がかりはありません。

プロセスのコアダンプ時に表示される通常のメッセージ ( Caught signal. dumped core) も欠落しています。

4

1 に答える 1

1

あなたがそこに言ったとき、あなたduring performance testingは大きな手がかりを持っています!!!!!

通常、パフォーマンス テスト ケースでは、コンパイラの最適化が強化され、あまり適切に記述されていないコードの一部がショート サーキットになり、クラッシュが発生します。

典型的な例を挙げると、変数は、スレッド間で読み取られることになっている場合、volatile と宣言されません。

于 2012-06-15T08:34:58.783 に答える