Oracle® Solaris Studio 12.4: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2015 年 1 月
 
 

メモリーアクセス問題とメモリーリークを検出する

実行時検査は、メモリーアクセス検査、およびメモリー使用状況とリーク検査の 2 部で構成されます。アクセス検査は、デバッグ対象アプリケーションによるメモリーの誤った使用をチェックします。メモリー使用状況とメモリーリークの検査では、未処理のヒープ領域をすべて追跡したあと、必要に応じて、またはプログラムの終了時に、使用可能なデータ領域をスキャンし、参照されていない領域を識別します。

メモリーアクセス検査、およびメモリー使用状況とメモリーリークの検査は、check コマンドによって使用可能にします。 メモリーアクセス検査のみを有効にするには、次のように入力します。

(dbx) check -access

メモリー使用状況とメモリーリークの検査を有効にするには、次のように入力します。

(dbx) check -memuse

必要な種類の実行時検査を有効にしたら、プログラムを実行します。プログラムは正常に動作しますが、各メモリーアクセスが実行される直前にその妥当性がチェックされるため、動作速度は遅くなります。無効なアクセスを検出すると、dbx はそのエラーの種類と場所を表示します。その場合は、現在のスタックトレースを表示するための where コマンドや、変数を調べるための print コマンドなどの dbx コマンドを使用できます。


注 - Java コードおよび C JNI コードまたは C++ JNI コードが混在するアプリケーションには、実行時検査を使用できません。

実行時検査の使用の詳細については、Chapter 9, 実行時検査の使用を参照してください。