ベアメタル対称型マルチプロセスシステムのデバッグについて

DS-5 デバッガでは、ベアメタル対称型マルチプロセス(SMP)システムのデバッグをサポートしています。 デバッガでは、SMP システムが以下の要件を満たしていることを想定しています。

Show/hide設定と接続

デバッガで SMP サポートを有効にするには、最初に[Debug Configurations]ダイアログボックスでデバッグセッションを設定する必要があります。 SMP バッグをサポートするターゲットは、SMP を[Debug operation]ドロップダウンリストで指定することによって識別されます。

デバッガで SMP サポートを有効にするために必要なことは、単一の SMP 接続の設定だけです。 接続時にシステム内のすべての SMP プロセッサをデバッグするには、デバッグ制御ビューで選択します。

Show/hideイメージとシンボルのロード

SMP システムのデバッグ時は、イメージとシンボルのロード操作がすべての SMP プロセッサに適用されます。 イメージのロードの場合、これは、いずれかのプロセッサを介してイメージのコードとデータがメモリに 1 回書き込まれ、同じアドレスの他のプロセッサを介してアクセス可能である見なされることを意味します。これは同じメモリを共有するためです。 シンボルのロードの場合、これは、デバッグ情報は 1 回ロードされ、いれかのプロセッサのデバッグ時に使用可能であることを意味します。

Show/hide実行、停止、およびステップ実行

SMP システムのデバッグ時は、1 つのプロセッサを実行しようとすると、システム内の他のすべてのプロセッサが自動的に実行されます。 同様に、プロセッサが停止すると(停止を要求したか、またはブレークポイントに到達するなどのイベントによって)、システム内のすべてのプロセッサ停止します。

命令レベルのシングルステップ実行(stepi および nexti コマンド)の場合、現在選択されているプロセッサは 1 つの命令をステップ実行します。 例外は、nexti 操作が関数呼び出しをステップオーバーする必要がある場合です。この場合、デバッガはブレークポイントを設定してから、すべてのプロセッサを実行します。 他のすべてのステップ実行コマンドは、すべてのプロセッサに影響を及ぼします。

システムによっては、実行中または停止中のプロセッサと、実行中または停止中の別のプロセッサの間に遅延がある可能性があります。 デバッガでは手動ですべてのプロセッサを個別に実行または停止する必要があるので、この遅延は非常に大きくなる可能性があります。

めったにありませんが、1 つのプロセッサが停止し、そのために他のプロセッサが停止できなくなることがあります。 例えば、これは、セキュアードでコードを実行しているプロセッサが一時的にデバッグ機能を無効にしたときに発生することがあります。 これが発生すると、デバッグ制ビューに各プロセッサの個々の状態(実行中または停止)が表示されるので、停止できなかったプロセッサを確認できます。 すべてのプロセッが停止するまで、後続の実行およびステップ実行操作を正常に動作できない場合があります。

Show/hideブレークポイント、ウォッチポイント、およびシグナル

デフォルトでは、SMP システムのデバッグ時は、ブレークポイント、ウォッチポイント、およびシグナル(ベクタキャッチ)操作がすべてのプロセッサに適用されます。 これは、条件を満たすコードをいずれかのプロセッサが実行するときに 1 つのブレークポイントをトリガするよう設定できることを意味します。 デバッガがブレークポイント、ウォッチポイント、またはシグナルのために停止したときは、イベントを発生させたプロセッサがコマンドビューに表示されます。

関連する[Properties]ダイアログボックスで必要なプロセッサを選択することによって、1 つまたは複数のプロセッサについてブレークポイントまはウォッチポイントを設定できます。 あるいは、break-stop-on-cores コマンドを使用することもできます。 ここの機能はシグナルには使用できません。

Show/hideターゲットの状態の検査

レジスタ、コールスタック、メモリ、逆アセンブリ、式、変数などターゲット状態のビューには、プロセッサ固有の内容が含まれています。

ブレークポイント、信号、コマンドなどのビューは、SMP システム内のすべてのプロセッサで共有され、プロセッサが現在選択されているかどうかに関係なく、同じ内容を表示します。

Show/hideトレース

トレースのサポートを有効にする接続を使用している場合は、システム内の各プロセッサのトレースを表示できます。 デフォルトでは、トレースビューには、デバッグ制御ビューで現在選択されているプロセッサのトレースが表示されます。 あるいは、トレースビューの[Linked: context]ツールバーオプションを使用することで、そのトレースビューを特定のプロセッサにリンクすることを選択できます。 特定のプロセッサにリンクされる複数のトレースビューを作成すると、複数のプロセッサからトレースを同時に表示できるようになります。 トレースビューのインデックスは、別のプロセッサと同時に同じポイントを表しているとは限りません。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0446IJ
Non-ConfidentialID051512