dbx コマンドによるデバッグ

dbxenv 変数

RTC 環境の設定には、次の dbxenv 変数を使用してください。これらの変数のいずれかをそのデフォルト値から永続的に変更したい場合は、dbxenv コマンドを $HOME/.dbxrc ファイルに入れます。すると、RTC を使用するときに必ず、各自の指定した値が使用されます。

dbxenv rtc_auto_continue {on | off}

rtc_auto_continue on にすると、RTC はエラーを見つけたところで停止せず、実行を継続します。また、すべてのエラーは $errorlogfile で指定されたファイルにリダイレクトされます。デフォルトは off です。

dbxenv rtc_auto_suppress {on | off}

rtc_auto_suppresson にすると、特定のエラーがある場所で最初見つかったときに報告され、その後同じエラーについては抑止されます。この機能は、同じエラーに対して重複して報告されないようにするのに便利です。デフォルトは on です。

dbxenv rtc_biu_at_exit {on | off | verbose}

この変数は check -memuse が有効 (暗黙的または check -all を使ってオンにしている) の場合に使用されます。この変数の値が on の場合、プログラム終了時に簡単なメモリー使用状況 (ブロック使用状況) レポートが生成されます。デフォルトは on です。

値が verbose の場合、プログラム終了時に詳細なメモリー使用状況レポートが生成されます。値を off にすると、何も出力されません。この変数は、対話形式の showmemuse コマンドに影響を及ぼしません。

dbxenv rtc_error_log_file_name {filename}

rtc_error_log_file_name は、RTC エラーメッセージを dbx の標準出力の代わりに指定されたファイル filename にリダイレクトします。デフォルト は /tmp/dbx.errlog.uniqueid です。

実行時エラーがバッチモードで検出された場合は、プログラムは自動的に停止しません。すべてのエラー出力は filename に格納されます。プログラムは、ブレークポイントを検出するか割り込みが行われると停止します。

バッチモードでは、完全なスタックバックトレースが生成され、filename にリダイレクトされます。すべてのエラーを端末にリダイレクトするには、rtc_error_log_file_name /dev/tty に設定してください。

dbxenv rtc_error_limit n

ここで、n は RTC が報告するエラーの最大数です。このエラーの制限値は、アクセスエラーとリークエラーとで別々に使用されます。たとえば、エラーの制限値を 5 に設定すると、プログラムの実行の最後に行われるリークレポートと実行する各 showleaks コマンドの両方で、最大 5 つのアクセスエラーと最大 5 つのメモリーリークが示されます。デフォルトは 1000 です。

dbxenv rtc_mel_at_exit {on|off|verbose}

この変数は、リーク検査が有効な場合に使用されます。変数の値が on の場合、簡易メモリーリークレポートがプログラムの終了時に作成されます。変数の値が verbose だと、詳細メモリーリークレポートがプログラムの終了時に作成されます。値が off の場合、出力は生成されません。この変数は、showleaks コマンドには影響を及ぼしません。デフォルト値は on です。