Renesas Synergy™

FAQ 3000062 : (e² studio)コンソール表示でprintfデバッグする方法

Q : 質問

e² studioでprintfのようなものを使ってコンソール表示でデバッグするには?


A : 回答

e² studioでデバッガのコンソールに文字列を出力するには、以下二種類の方法があります。
目的に応じて適用を御検討ください。

[標準入出力関数で仮想コンソールに出力する方法 (RXのみ対象)]
RXファミリ用C/C++コンパイラパッケージ付属のライブラリ関数のうち、printf等の標準入出力関数は、低水準入出力関数を実装することで使用が可能になります。
標準入出力関数についての詳細はコンパイラ製品付属のヘルプを御覧ください。

コンソールにprintfで文字列を出力するサンプルコードが以下のサイトで公開されています。

RXファミリ E1を使用したデバッグコンソール機能 (R01AN0252JT)
https://www.renesas.com/search/keyword-search.html#q=R01AN0252

このサンプルコードはエミュレータのレジスタをアクセスする
低水準入出力関数により仮想コンソールへの出力を実現しています。
このサンプルコードはRXシミュレータでも動作します。

e² studioで上記のサンプルコードを使用するには:
(1) 上記のサイトからサンプルコードをダウンロードする
(2) e² studioのメニュー「ファイル」→「新規」→「インポート」→「Cプロジェクト」で
   「HEWプロジェクト」を選択してインポートします。
(3) プロジェクトプロパティの設定画面で「C/C++」→「Linker」→「セクション」で
  セクション名 "L" をROM領域に追加定義します。
  (「セクションの追加」ボタンを押し、追加されたセクションの名前を"L"に変更する)
(4) 「プロジェクトのビルド」でビルドします。
(5) デバッガを実行すると「Renesasデバッグ仮想コンソール」内にメッセージが表示されます。

デフォルトの状態では仮想コンソールが最初は表示されていないため、
コンソールビューの右上にある「コンソールを開く」ボタンで
「Renesasデバッグ仮想コンソール」を選択してください。



[Dynamic printfを使う方法]
e² studioではCDTデバッガの機能として、printf様の形式でデバッグコンソールに表示を行う「Dynamic printf」という機能があります。
これを使用するとprintf関数をソースコードに実装せずに、デバッグ時に文字列や変数・変数式の値をコンソール(仮想コンソールではありません)に表示することができます。

デバッガ起動後、ソースコードの左端で右クリックすると
コンテクストメニューの中に「Add Dynamic Printf...」が現れます。
(ブレークポイントを張る際と同様の操作です)
「プロパティ: C/C++ Line Dynamic Printf」ダイアログ内の「printf(」欄に
printfの形式で文字列や変数名などを記入してください。
ブレークポイントが張れる場所であれば複数個所に設定可能です。

ソースコードにprintfを記述する必要はありません。
その反面、表示の都度自動的にデバッガを停止・再実行させるために、
デバッガ実行時のパフォーマンスは低下します。
また、ブレークポイントと同様に他の環境にプロジェクトを
インポートしてもDynamic printfの設定は引き継がれません。

関連FAQ
FAQ 2000008 : SynergyソフトウェアパッケージのデバッグコンソールでPrintf()を使用する方法は?

 

適用製品

e² studio
他にご質問がございましたら、リクエストを送信してください