7

Linux、FreeBSD、およびその他のシステムでは、無効な読み取りなどのメモリ エラーをチェックするための valgrind があります。私はヴァルグリンドが大好きです。ここで、Solaris/OpenSolaris でコードをテストする必要がありますが、無効な読み取り/書き込みに関する情報を valgrind と同じくらい良い方法 (またはそれ以上;-)) で取得する方法が見つかりません。

ネットでこれを検索すると、libumemへの参照が見つかりますが、無効なアクセスではなく、メモリリークに関するレポートしか得られません。私は何が欠けていますか?

4

3 に答える 3

6

Sun Studio コンパイラに含まれる dbx には、「実行時チェック」機能 (checkサブコマンド) でメモリ アクセス チェックのサポートが含まれています。見る:

関連する「Sun Memory Error Discovery Tool」も http://cooltools.sunsource.net/discover/から入手できます。

于 2009-12-10T16:07:04.440 に答える
2

バージョン 3.11.0 以降、Valgrind は Solaris 上で動作します。リリース ノートサポートされるプラットフォームを参照してください。

より正確には、x86/Solarisおよびamd64/Solarisがサポートされるようになりました。sparc/Solarisのサポートはまだ進行中です。

于 2015-10-21T03:59:33.327 に答える
1

watchmallocは非常に便利なライブラリであり、プログラムに動的にロードでき (通常は再コンパイルする必要はありません)、解放された領域や割り当てられたメモリ ブロックの後に、通常は問題のあるすべてのメモリ位置にウォッチポイントを設定します。プログラムがこれらの無効な領域の 1 つにアクセスすると、シグナルが発生し、デバッガーで検査できます。

構成に応じて、問題のある領域を書き込みのみ、または読み取りも監視できます。

于 2009-12-10T14:47:43.027 に答える