RTC を修正継続機能とともに使用すると、プログラミングエラーを簡単に分離して修正することができます。修正継続機能を組み合わせて使用すると、デバッグに要する時間を大幅に削減することができます。次に例を示します。
% cat -n bug.c 1 #include <stdio.h> 2 char *s = NULL; 3 4 void 5 problem() 6 { 7 *s = 'c'; 8 } 9 10 main() 11 { 12 problem(); 13 return 0; 14 } 15 % cat -n bug-fixed.c 1 #include stdio.h 2 cahr *s = NULL; 3 4 void 5 problem() 6 { 7 8 s = (cahr *)malloc(1); 9 *s = 'c'; 10 } 11 12 main() 13 { 14 problem(); 15 return 0; 16 } % cc -g bug.c % dbx -C a.out a.out のシンボル情報を読んでいます rtld /usr/lib/ld.so.1 のシンボル情報を読んでます librtc.so のシンボル情報を読んでいます libc.so.1 のシンボル情報を読んでいます libdl.so.1 のシンボル情報を読んでいます (dbx) check -access アクセス検査 - ON (dbx) run 実行中: a.out (プロセス id 10804) 実行時検査を有効にしています...終了 非割り当て領域への書き込み (wua): 1 バイト書き込み を NULL ポインタを通して しようとしました。 現関数 :problem 7 *s = 'c'; (dbx) pop main で停止しました 行番号 12 ファイル "bug.c" 12 problem(); (dbx) cp bug-fixed.c bug.c (dbx) fix 修正中 "bug.c" ...... pc は "bug.c":14 に移動しました main で停止しました 行番号 14 ファイル "bug.c" 14 problem(); (dbx) cont 実行完了。終了コードは、0 です (dbx) quit 'a.out' の下記のモジュールは変更されました (修正済み): bug.c プログラムを再構築することをお忘れなく。