RTC は、統合的なデバッグ機能であり、コレクタによるパフォーマンスデータの収集時を除けば、実行時にあらゆるデバッグ機能を利用できます。
次に、RTC の機能を簡単に説明します。
メモリーアクセスエラーを検出する
メモリーリークを検出する
メモリー使用に関するデータを収集する
すべての言語で動作する
マルチスレッドコードで動作する
再コンパイル、再リンク、またはメイクファイルの変更が不要である
-g フラグを付けてコンパイルすると、RTC エラーメッセージでのソース行番号の関連性が与えられます。RTC は、最適化 -O フラグによってコンパイルされたプログラムを検査することもできます。-g オプションによってコンパイルされていないプログラムについては、特殊な考慮事項があります。
RTC を実行するには、check コマンドを使用します。
大量のエラーが一度に検出されないようにするには、開発サイクルの初期段階、すなわちプログラムの構成要素となる個々のモジュールを開発する段階で RTC を使用します。この各モジュールを実行する単位テストを作成し、RTC を各モジュールごとに 1 回ずつ使用して検査を行います。これにより、一度に処理するエラーの数が減ります。すべてのモジュールを統合して完全なプログラムにした場合、新しいエラーはほとんど検出されません。エラー数をゼロにしたあとでモジュールに変更を加えた場合にのみ、RTC を再度実行してください。
RTC を使用するには、次の要件を満たす必要があります。
libc を動的にリンクしている。
標準関数 libc malloc、free 、および realloc を利用するか、これらの関数を基づいたアロケータを使用する。RTC では、ほかのアロケータはアプリケーションプログラミングインタフェース (API) で操作します。「実行時検査アプリケーションプログラミングインタフェース」を参照してください。
完全にストリップされていないプログラム。strip -x によってストリップされたプログラムは使用できます。
実行時検査の制限については、「実行時検査の制限」を参照してください。