Sun Studio 12: dbx コマンドによるデバッグ

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

実行時検査は、メモリーアクセス検査、およびメモリー使用状況とリーク検査の 2 部で構成されます。アクセス検査は、デバッグ対象アプリケーションによるメモリーの使用がまちがっていないかどうかをチェックします。メモリー使用状況とメモリーリークの検査では、未処理のヒープ空間すべてを記録し、必要に応じて、またはプログラム終了時に、利用できるデータ空間の走査および参照なしの空間の確認を行います。


注 –

実行時検査が実行できるのは、Solaris プラットフォームのみです。


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


(dbx) check -access

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


(dbx) check -memuse

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


注 –

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


実行時検査の詳細については、第 9 章「実行時検査」を参照してください。