CodeRecorder CR-200(コードレコーダー)

無償評価貸出中!
動的テストツール CodeRecorder CR-200

デバッガとは異なる視点でバグを発見する動的テストツール(動的解析ツール)!


今、動いているプログラムは「偶然」動いているように見えるだけかもしれません。プログラムの本当の動きは人間のイメージを越えていることがあり、デバッガを使用していても気づかないことがあります。CodeRecorderはプログラムの本当の動きを見える化することで、デバッガでは手に負えないような難しいバグを発見することができます。
ターゲットCPUに依存することなく、様々なシステムでお使いいただけるのも特長の一つです。

製品リリース間近になって、マレにしか発生しない不具合に遭遇し、原因を特定するのに試行錯誤しながら時間だけが大幅に過ぎていくような経験ありませんか?
CodeRecorderを使えば、再現性の難しいバグも簡単に発見でき、より品質の高い製品開発が行えます。

CodeRecorderとは

CodeRecorder(コードレコーダー)は、ターゲット・プログラムの実行を記録、解析して、
  1. プログラムの見える化(デバッグ)
  2. カバレッジ・テスト(品質アップ)
  3. 実行時間計測(パフォーマンスアップ)
などの機能が一台でできる新しい形のツールです。

CodeRecorderの特長

  • ターゲットCPUに依存しない汎用性の高いツール
  • 数時間におよぶターゲット・プログラムの実行を記録可能
  • 関数の実行を時系列でグラフ表示し、見える化を実現
  • OSに手を加えることなくタスクやスレッドの見える化も可能
  • カバレッジ機能でテスト漏れを確認可能
  • 関数プロファイラによりプログラムのボトルネックを発見
  • 実行記録からCソースの逆ステップや変数値の変化を再現可能なデバッグ機能を搭載
  • 変数値の変化をグラフ表示し、突出したデータを見える化
  • 動的メモリを監視しメモリリークなどのエラー検出が可能
  • カバレッジや関数実行時間などのレポートを作成可能
  • 各ウィンドウの表示をCSV出力可能
  • カバレッジ・モードでリアルタイムにプログラムの通過を確認
  • 既存ターゲットでもGPIO2本で簡単に接続可能
  • USB3.0接続で高速転送可能

プログラムの見える化からソース・デバッグまで!

関数の見える化でバグを見つける

関数の呼び出しを時系列でグラフ表示します。関数の呼び出し状態と実行時間が一目でわかり、意図しない呼び出しや、実行時間の長い関数を簡単に見つけることができます。 OSに手を加えずにRTOSやLinuxにも対応、システムコールの呼び出し、タスクやスレッドがどのタイミングで実行されているか把握できます。 グラフの拡大縮小が簡単にできるため、記録データ全体を確認することも容易です。また、関数の検索やマークを設定、2点間時間計測など、バグの発見に役立つ機能がそろっています。

> プログラムの見える化でバグを発見ストーリー <

動的メモリの見える化でバグを見つける

動的メモリの使用状況を監視しグラフ表示します。メモリの確保や解放が一目でわかるので、異常なメモリ確保を見つけることが容易になります。また、メモリ・リークや多重解放などの異常ポイントを検出し、そのポイントからソース・デバッグを行うことも可能です。

変数の見える化でバグを見つける

変数の値の変化をグラフ表示します。変数値を見える化することで、バグの原因となりそうな突出した値を確認することができます。値の検索も簡単に行えますので、値が変更されたポイントを表示し、そのポイントからソース・デバッグを行うことも可能です。

見える化ウィンドウから再現デバッグ

見える化のウィンドウで異常個所を見つけた場合、「ここからデバッグ」メニューによってソース・デバッグを行うことが可能です。実行記録のデータで、ステップ実行や逆方向への追跡が可能です。また、変数を記録しておけば変数値を再現しながらデバッグすることもできます。CodeRecorderは見える化だけにとどまらず、ソース・コード・レベルのデバッグまでサポートしています。

カバレッジでテスト漏れを防ぐ!

コードの通過率でテストの進捗を把握する

テストによってソース・コードの何パーセントが通過したかを表示、テストの進捗状況を把握することができます。まだ通過していないコードを見つけ、そのテスト項目を追加することで、品質向上に役立てることができます。カバレッジ率を表示するカバレッジ・ウィンドウはソース単位や関数単位でのC0/C1カバレッジを確認できます。

未通過のソース行を確認可能

カバレッジ・ウィンドウでカバレッジ率が低い関数を見つけた場合、その関数のどこが未通過か、ソース表示で確認できます。グレーで表示されているソース行の条件を確認し、通過させる条件をテスト項目を追加していけば、より強力なテストとなり、品質アップへつながります。

リアルなプログラム通過を確認

実機の動作中にプログラムの通過を確認できる、カバレッジ・モードを用意。ソース表示で通過した行は赤色にマークされますので、現在のテストでは未通過の場合、条件を変えてテストを行うことができます。カバレジ・ウィンドウのC0/C1カバレッジ率もリアルタイムに変化を確認できます。このモードではデータが膨大にならないため、長時間のテストも安心して行えます。

運用面での機能も充実

カバレッジはチームで行いますので、運用していくことが重要になります。報告書作成やCSV出力はもちろん、チームでカバレッジを行うためのマージ機能、除外機能など実作業に必要な機能を用意しています。

パフォーマンス解析で速度を上げる!

関数の実行時間計測でボトルネックを発見

関数ごとの実行時間や呼び出し回数、最大、最小、平均の実行時間を計測し表示します。呼び出している子関数の割り合いを円グラフで表示することや、関数のコールグラフから、ボトルネック関数を見つけることも可能です。また、最大時間、最小時間を記録したポイントをグラフ系のウィンドウに表示させることができ、そのポイントからソースを追跡することも可能です。

改善前と改善後の実行時間を比較

実際にどの関数が何%改善されたかが一目で分かります。改善を行ったつもりで逆に改悪してしまった関数もレポートされますので、プログラム全体でのパフォーマンスアップ状況を把握できます。

任意の2点間を計測

任意の2点間の実行時間を計測し、時間の分布を詳細に表示可能です。特定のルーチンの時間のばらつきを見ることで、実行時間に問題がないか確認できます。

その他の特長

テスト・コードの自動埋め込み

計測用のテスト・コードはソース・ファイルを解析して自動的に埋め込みます。テスト・コードを埋め込んで影響が出る場合は、関数単位で外すことができます。(Cコンパイラ:C89/C99/C++11に対応)

ターゲット接続が簡単

接続は高速データ通信のメモリ・バスと、最少2ピンで接続できるGPIOを選択可能です。GPIOのデータは1/2/4本から選択します。

接続信号の波形表示

接続時にオシロスコープを使用することなく信号の様子を確認できます。GPIOの設定等で信号が正しく出ていない場合にすぐに確認できます。

※この機能はCR-200への接続信号のみで、汎用的な信号を測定するものではありません。

オーバーヘッド時間を短縮

従来機に比べ、テストコードのオーバーヘッド時間を大幅に短縮。ターゲットの負荷が軽減されます。

解析待ち時間を短縮

USB3.0でパソコンにリアルタイムにデータをアップすることで、従来の解析待ち時間を半分に短縮します。

CodeRecorder V3の新機能

高速/中速テスト・コード

高速テスト・コードと中速テスト・コードは、従来のテスト・コードの転送速度に対して中速テスト・コードで1.5~2倍、高速テスト・コードにおいては実に2~3倍の速度で転送することが可能となりました。テスト・コードの転送時間時間が少なくなったことにより、実実行時間により近い測定が可能になりました。また、今までテスト・コードの転送速度がネックとなり埋め込むことができなかったクリティカルな処理関数も、テスト対象にできる可能性が広がりました。

テスト・コードの負荷ランキング表示

高速/中速テスト・コードを有効に利用するために、[埋め込み負荷ランキング]を表示する機能を追加しました。この機能は取得したレコード・パケットから負荷の高いテスト・コードを抽出し、高速/中速へ設定を変更することができる機能です。オーバーヘッドの高いテスト・コードを試行錯誤で除外しなくても、実測値をもとにランキング表示されたものを見ながら負荷の高い埋め込みコードを高速/中速テスト・コードに置き換えることが可能となります。

周期タイムアウト検出

周期タイムアウト検出は、特定のポイントが周期的に呼び出される場合、その周期が設定時間を超えたことを検出する機能です。通常のテスト・コードよりも高精度な10ns単位での計測が可能で、タイムアウトした場合に取り込みを停止させることや、マークを設定することができます。これにより、設定時間を超えた場合のプログラムの動作を素早く検証することが可能となります。

2点間タイムアウト検出

2点間タイムアウト検出は、2点間の実行時間が設定時間を超えたことを検出する機能です。通常のテスト・コードよりも高精度な10ns単位での計測が可能で、タイムアウトした場合に取り込みを停止させることや、マークを設定することができます。これにより、設定時間を超えた場合のプログラムの動作を素早く検証することが可能となります。

変数監視機能

変数監視機能は、特定の変数の値を監視し、条件一致を検出する機能です。条件の指定には値の一致、不一致、範囲内、範囲外の設定が可能で、最大4つまで条件を設定することができます。条件が一致したときに取り込みを停止させることや、マークを設定することができます。レコード・パケットの取得ダイアログで設定変数の値をサンプリング表示することも可能です。

外部信号入力機能

接続してるデータの本数が 1ビットまたは2ビットの場合、未使用のPD3信号線を外部入力信号として使用できます。立ち上がり、立ち下がりの条件設定が可能で、条件一致で取り込みを停止させることや、マークを設定することができます。また、EXTCNコネクタにエクスターナル・プローブ(EXTPRB1 for PALMiCE-ETM)を接続することでBRKINを外部入力信号として使用できます。パルスを入力することで取り込みを停止させることや、マークを設定することができます。これらの入力信号はレコード・パケットの取得タイミングとは関係なく非同期に入力されますので、正確な入力時間が得られます。

PALMiCE3の制御機能

当社製JTAGエミュレータPALMiCE3とEXTCNコネクタに専用ケーブル(PALMiCE2連動ケーブル)で相互に接続して、タイムアウトや変数監視の条件一致でPALMiCE3側を停止させることが可能です。

*この機能はPALMiCE3 ARMのみ使用可能です。

各種モニタ機能

レコード・パケットの取得ダイアログにデータの取り込みに関する、さまざまな情報を表示する機能です。レコード・パケットの詳細な取得状況や、タイムアウト機能、監視機能のステータスが表示されます。

遷移系ウィンドウにマーク表示

関数スタックや関数遷移などのウィンドウにタイムアウト監視や変数監視、外部信号入力などのマークが表示されるようになります。右クリックメニューで「トリガ」を選択すると表示できるマークを選択することができます。

変数チャートのCSV保存機能

変数チャートに変数値をCSV形式で保存します。保存したファイルを表計算ソフトなどでグラフ化することができます。

[コンパイル・ログからファイルを追加]機能にコンパイラ追加

プロジェクト・ウィンドウの[コンパイル・ログからファイルを追加]の機能で、「EW RL78」、「CS+ RL C」、「LAPIS CCU8 C」に対応しました。

信号波形表示の機能追加

信号波形表示に、ズームアウトして全体を表示する[全表示]と、連続して波形を取得する[連続表示]の機能を追加しました。

CodeRecorderの使い方

CR-200接続図
ターゲット・システムにGPIOまたはメモリ・バスI/Fで専用ハードウェア「CR-200」を接続し、テスト・コードから出力された情報を記録します。テスト・コードはCodeRecorderが必要な場所に自動的に埋め込むため、手作業でソース・コードを変更する必要はありません。
CodeRecorderの使い方

使用事例

事例1:チェックリスト、残念ながらカバレッジ率60%でした。

CodeRecorderのカバレッジ機能を使ってテストしてみたところ、既定のチェックリストをすべてクリアしたにもかかわらず、C0カバレッジ率が60%しか達成していなくて驚きました。通過していないコードはデバッグ用のコードや、めったに起こらないエラーチェックルーチンなどでしたが、中には if 文の条件式が間違っていたために実行されない本当のバグも見つかりました。

事例2:カバレッジなんか大して品質は上がらないと思っていました。

今までは、カバレッジなんて面倒な作業で、やらなくても品質は確保できていると考えていましたが、CodeRecorderのカバレッジを使ってみると、ソースコードの通過しない場所が分かるので、新たなテストケースの追加に役立ちました。ほかにも、使われていない関数がソース上に残っているのが発見でき、ソースコードの整理にも有効であることが分かりました。

事例3:何日も悩んだバグが数十分で解決できて驚きです。

新しく開発した製品にTCP/IPで通信を行う機能を追加したのですが、思ったよりもパフォーマンスが出ませんでした。最初はLANコントローラ系の設定ミスだろうと思っていましたが、特に間違いはなく、デバッガで追いかけても原因が特定できずに、行き詰っていました。ダメもとでCodeRecorderを使ってみると、関数の動きが視覚化されて、そこに周期割り込みが想定以上に発生していることが分りました。何日も費やした問題が、ほんの数十分で解決して感動しました。

動作確認済みボード

ボード名 メーカ名
CPU名
確認済み
接続方法
ボード・メーカ名
Armadillo-500 NXP Semiconductors
i.MX31
GPIO アットマークテクノ
Armadillo-800 ルネサス エレクトロニクス
R-Mobile A1
GPIO アットマークテクノ
Armadillo-840/A ルネサス エレクトロニクス
R-Mobile A1
GPIO アットマークテクノ
ZedBoard-7000 Xilinx
Zynq-7000 SoC
GPIO AVNET
CKB-1808 Texas Instruments
AM1808
メモリバス
GPIO
コンピューテックス
CKB-3352 Texas Instruments
AM3352
メモリバス
GPIO
コンピューテックス
CKB-RZ/A1H ルネサス エレクトロニクス
RZ/A1H
GPIO コンピューテックス
CEV-RZ/A1L ルネサス エレクトロニクス
RZ/A1L
メモリバス コンピューテックス
RX62N8 評価ボード ルネサス エレクトロニクス
RX62N
GPIO コンピューテックス
SH7216F 評価ボード ルネサス エレクトロニクス
SH7216F
メモリバス
GPIO
コンピューテックス
CY8CKIT-149 PSoC 4100S
Plus Prototyping Kit
Cypress
PSoC 4100S
GPIO Cypress Semiconductor
F2MC-16FX(MB96F615) Cypress
F2MC-16FX
GPIO Cypress Semiconductor
ML62Q1267 Reference Board ラピスセミコンダクタ
ML62Q1267A
GPIO ラピスセミコンダクタ
SAMV71 Xplained Ultra Microchip Technology
SAMV71Q21
GPIO Microchip Technology
Renesas Starter Kit+ for RX65N-2MB ルネサス エレクトロニクス
RX65N
GPIO ルネサス エレクトロニクス
Renesas Starter Kit for RL78/G13 ルネサス エレクトロニクス
RL78/G13
GPIO ルネサス エレクトロニクス
RSK RZ/N1D CPU Board +
RSK RZ/N1 Expansion BOARD
ルネサス エレクトロニクス
RZ/N1D
GPIO ルネサス エレクトロニクス
BGM111 Bluetooth Module Radio Board
 + Wireless Starter Kit MainBoard
Silicon Laboratories
BGM111
GPIO Silicon Laboratories
STM320518-EVAL STMicroelectronics
STM320518
GPIO STMicroelectronics
66AK2Gx (K2G) Evaluation Module Texas Instruments
66AK2G02
GPIO Texas Instruments
AM1808 EVM Texas Instruments
AM1808
メモリバス Texas Instruments

関連資料

関連記事

はじめてのカバレッジ

PDF
はじめてのカバレッジ 「カバレッジテストって意味があるの?」という否定的な考えをお持ちの方。
これを読めばカバレッジへの考え方が変わります。

CodeRecorderでカバレッジ

PDF
CodeRecorderでカバレッジ カバレッジの導入に対して戸惑いをお持ちの方。
CodeRecorderを使用してのカバレッジについて詳しく説明します。

RL78マイコンで新しいデバッグ体験

PDF
RL78マイコンで新しいデバッグ体験しませんか RL78は小さいマイコンだからまだなんとかなる」と思っていませんか?
小さいマイコンでも動きは人間の理解を超えます。

JTAG-ICEと何が違うの?

PDF
CodeRecorderでカバレッジ 動的テストツールCodeRecorderはJTAG-ICEと何が違い、開発のシーンでどのように使うのか詳しく説明します。

資料一覧

対応パソコン

対応OS
HDD
USB
: 日本語 Windows 10/8/7 (64bit /32bit)
: データ取得用に数十GB以上の空きが必要
: USB3.0

無償評価貸出中!

GPIO 2本だけでつながる!CodeRecorder CR-200を無償評価貸出中!

既存のシステムでも、使っていないGPIOが2本あれば、簡単に接続して評価できます。
評価貸し出しも行っていますので、お気軽にお問い合わせください。

詳細については当社営業部までお問い合わせください。

Microsoft Visual C++用動的テストツール

Visual C++で製品開発をされている方へ

Visual C++で開発したプログラムも同様の動的テストがパソコンだけでできます。

Microsoft Visual Studioのアドインソフトで設定は簡単、すぐに動的テストが始められます。

製品版と全く同じ機能が30日間試用できます。


詳しくは、「CodeRecorder VC」をご覧ください。


PDF
PDF形式のデータをご覧になるには、 Adobe Reader®が必要です。 Adobe Reader®は、Adobe Systems Incorporatedの商標または登録商標です。
Adobe Readerのダウンロード・サイト