0

OpenBSD 上の複雑な C++ アプリケーションで、二重削除とメモリ破損が何らかの形で発生していると思います。オブジェクトが削除された最初の場所と、割り当て解除されたメモリにアクセスしたポイントを追跡したいと思います。

通常は valgrind を調べますが、これは Linux のみです。それができない場合は、新しい演算子と削除演算子に何らかの追跡コードを使用しますが、これに対する正しい Google 検索を判断するのは難しいと感じています。

メモリ エラーに関する情報を提供する openbsd のパッケージはありますか? オーバーフロー、無効なアクセス、二重解放を検出するために new と delete を再定義する標準的な方法はありますか?

4

2 に答える 2

1

これは大いに役立ちます:

man malloc

デバッグ オプションは、システム全体、環境全体、またはプログラム固有で有効にすることができます。

于 2011-08-18T14:45:18.423 に答える
-1

サード パーティのツールを使用するかどうかはわかりませんが、C++ メモリ バリデータは非常に優れています。

http://www.softwareverify.com/cpp-memory.php

メモリ/ハンドル リークを分離し、メモリ リークの量を示し、コード内の位置を示します。それだけでリークを修正できれば: ) 30日間の無料トライアルも利用できます.

私はこれを使用して、以前の開発者がメモリを解放する必要があるとは考えていなかったレガシー C++ MFC アプリケーションのリークを見つけました。

于 2012-01-12T13:58:29.253 に答える