私はこの比較的大きな数値アプリケーション コードを持っています。これは数日間実行され、最終的にいくつかの数値を吐き出す可能性があります。全体が C++ で書かれており、多数のサードパーティ ライブラリを利用し、GCC 4.6 を使用してコンパイルされています。コード全体で共有ポインターを使用します。
残念なことに、時間が経つにつれて、コードのメモリ消費量が増加し、すべての (共有) メモリが使い果たされてクラッシュします。アルゴリズム的に、コードは時間の経過とともにメモリを構築するべきではないため、どこかにバグがあるでしょう。
valgrind のリーク チェッカーを使用して小さな例を実行しましたが、すべて問題ないことが報告されました。私の考えでは、共有ポインターが意図せずにどこかに作成され、プロセス中に不要なデータが解放されるのを防いでいる可能性があります (ただし、これは単なる推測です)。
結局のところ、そのようなことをデバッグする方法のアイデアが不足しています。何か案は?