Skip to main content

IAR Embedded Workbench for Arm 9.70.x

ブレークポイントにマクロを接続して実行

このセクションの内容:

マクロは、ブレークポイントに接続できます。これにより、ブレークポイントがトリガされると、マクロが実行されます。この方法では、特定の場所で実行を停止して、そこで特定のアクションを実行できるという長所があります。

ヒント

たとえば、変数、シンボル、レジスタの値が変更された経緯などの情報を含むログレポートを簡単に作成できます。これを実現するには、疑わしい位置にブレークポイントを設定し、そのブレークポイントにログマクロを接続します。これにより、処理を実行した後で、レジスタの値が変更された経緯を調べることができます。

ログマクロを作成してブレークポイントに接続するには、次の手順に従います。
  1. アプリケーションソースコードに以下のC関数のスケルトンが定義されていると仮定します。

    int fact(int x)
    {
     ...
    }
  2. 以下の例のような簡単なログマクロ関数を作成します。

    logfact()
    {
     __message "fact(" ,x, ")";
    } 

    _ _message 文で、メッセージが[デバッグログ]ウィンドウにロギングされます。

    マクロファイルのファイル名の拡張子を mac として、ログマクロ関数を保存します。

  3. マクロを登録するには、[表示]>[マクロ]>[マクロ登録]を選択して、[マクロ登録]ウィンドウを開き、マクロファイルをリストに追加します。登録するファイルを選択します。マクロ関数が[デバッグマクロ]ウィンドウに表示されます。

  4. コードブレークポイントを設定するには、アプリケーションのソースコードの関数fact内の最初の文で[ブレークポイントの切り替え]ボタンをクリックします。[表示]>[ブレークポイント]を選択して、[ブレークポイント]ウィンドウを開きます。ブレークポイントのリストで自分のブレークポイントを選択し、コンテキストメニューで[編集]コマンドを選びます。

  5. ログマクロ関数をブレークポイントに接続するには、マクロ関数名logfact()[アクション]フィールドに入力して、OKをクリックし、ダイアログボックスを閉じます。

  6. アプリケーションのソースコードを実行します。ブレークポイントがトリガされると、マクロ関数が実行されます。結果は[デバッグログ]ウィンドウに表示されます。

    [アクション]フィールドの式は、ブレークポイントによって実行が実際に停止する場合にのみ評価されます。値をログに記録して自動的に実行を継続する場合、以下のいずれかの方法を使用します。

  7. ログマクロ関数は簡単に拡張できます。たとえば、_ _fmessage文を使用すると、ファイルにログ情報を出力できます。_ _fmessage文については、フォーマットした出力を参照してください。

    マクロをブレークポイントに接続することによってシリアルポート入力バッファをシミュレーションする例については、インフォメーションセンタのチュートリアル、「割り込みのシミュレーション」を参照してください。