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

印刷ビューの終了

更新: 2016 年 6 月
 
 

バッチモードでの RTC の使用

bcheck(1) は、dbx の RTC 機能の便利なバッチインタフェースです。これは dbx の下でプログラムを実行し、デフォルトでは、実行時検査エラー出力をデフォルトファイル program.errs 内に格納します。

bcheck は、メモリーリーク検査、メモリーアクセス検査、メモリー使用状況検査のいずれか、またはこのすべてを実行できます。デフォルトでは、リーク検査だけが実行されます。この使用方法の詳細については、bcheck(1) のマニュアルページを参照してください。


注 -  64 ビット Linux OS を実行しているシステムで bcheck ユーティリティーを実行するには、その前に環境変数 _DBX_EXEC_32 を設定する必要があります。

bcheck の構文

bcheck の構文は次のとおりです。

bcheck [-V] [-access | -all | -leaks | -memuse] [-xexec32] [-o logfile] [-q]
[-s script] program [args]

-o logfile オプションを使用すると、ログファイルに別の名前を指定することができます。ファイル script に含まれている dbx コマンドを読み込むには、プログラムを実行する前に -s script オプションを使用します。script ファイルには通常、bcheck ユーティリティーのエラー出力を調整するための suppressdbxenv などのコマンドが含まれています。

-q オプションは、bcheck を完全な静止ステータスにして、プログラムと同じ状況になります。これは、スクリプトまたはメイクファイルで bcheck を使用したい場合に便利です。

bcheck の例

hello に対してリーク検査のみを実行するには、次のように入力します。

bcheck hello

mach に対して、引数 5 を指定してアクセス検査のみを実行するには、次のように入力します。

bcheck -access mach 5

cc に対してメモリー使用状況検査を出力なしで実行し、通常の終了ステータスで終了するには、次のように入力します。

bcheck -memuse -q cc -c prog.c

プログラムは、実行時エラーがバッチモードで検出されても停止しません。すべてのエラー出力がエラーログファイル logfile にリダイレクトされます。しかしプログラムは、ブレークポイントを検出するか、またはプログラムが割り込みを受けると停止します。

バッチモードでは、完全なスタックバックトレースが生成されて、エラーログファイルにリダイレクトされます。スタックフレームの数は、dbxenv 変数 stack_max_size を使用して制御できます。

ファイル logfile がすでに存在する場合、bcheck はそのファイルの内容を消去してから、そこに出力をリダイレクトします。

dbx からバッチモードを直接有効化

また、dbxenv 変数 rtc_auto_continuertc_error_log_file_name を設定することによって、dbx から直接バッチに似たモードを有効にすることもできます。

rtc_auto_continueon に設定されていると、RTC はそのままエラーを求めて自動的に実行されます。エラーは、dbxenv 変数 rtc_error_log_file_name で指定されたファイルにリダイレクトされます。デフォルトのログファイル名は、/tmp/dbx.errlog.unique-ID です。すべてのエラーを端末にリダイレクトするには、rtc_error_log_file_name 環境変数を /dev/tty に設定します。

デフォルトでは、rtc_auto_continueoff に設定されています。