bcheck(1) は、dbx の RTC 機能の便利なバッチインタフェースです。これは、dbx のもとでプログラムを実行し、デフォルトにより RTC エラー出力をデフォルトファイルの program.errs に入れます。
bcheck は、メモリーリーク検査、メモリーアクセス検査、メモリー使用状況検査のいずれか、またはこのすべてを実行できます。デフォルトでは、リーク検査だけが実行されます。この使用方法の詳細については、bcheck(1) のマニュアルページを参照してください。
bcheck [-access | -all | -leaks | -memuse] [-o logfile] [-q] [-s script] program [args]
-o logfile オプションを使用すると、ログファイルに別の名前を指定することができます。-s script オプションはプログラムの実行前に script を実行します。ファイル script に含まれる dbx コマンドを読み取ることができます。script ファイルには通常、suppress や dbxenv などのコマンドが含まれていて、bcheck によるエラー出力を調整します。
-g オプションは、bcheck を完全な静止状態にして、プログラムと同じ状況になります。これは、スクリプトまたはメークファイルで bcheck を使用したい場合に便利です。
bcheck hello
mach に引数 5 を付けてアクセス検査だけを実行します。
bcheck -access mach 5
cc に対してメモリー使用状況検査だけを静止状態で実行し、通常の終了状況で終了します。
bcheck -memuse -q cc -c prog.c
プログラムは、実行時エラーがバッチモードで検出されても停止しません。すべてのエラー出力がエラーログファイル logfile にリダイレクトされます。しかしプログラムは、ブレークポイントを検出するか、またはプログラムが割り込みを受けると停止します。
バッチモードでは、完全なスタックバックトレースが生成されて、エラーログファイルにリダイレクトされます。スタックフレームの数は、dbxenv 変数 stack_max_size によって指定できます。
ファイル logfile がすでに存在する場合、bcheck はそのファイルの内容を消去してから、そこに出力をリダイレクトします。
次の dbxenv 変数を設定すると、dbx から直接バッチ式モードを有効にすることもできます。
(dbx) dbxenv rtc_auto_continue on (dbx) dbxenv rtc_error_log_file_name logfile
この設定では、実行時エラーの検出時にプログラムは停止せず、すべてのエラー出力が各自のエラーログファイルにリダイレクトされます。