pa (アドレスまでステップ実行)

pa コマンドは、指定されたアドレスに達するまでプログラムを実行し、各ステップを表示します。

ユーザー モード

[~Thread] pa [r] [= StartAddress] StopAddress ["Command"]

カーネル モード

pa [r] [= StartAddress] StopAddress ["Command"]

パラメーター

Thread
実行を継続するスレッドを指定します。 他のすべてのスレッドは固定されています。 構文の詳細については、「スレッド構文」を参照してください。 スレッドは、ユーザー モードでのみ指定できます。

r
レジスタとフラグの表示をオンまたはオフにします。 既定では、レジスタとフラグが表示されます。 parprtr、または .prompt_-reg コマンドを使用してレジスタの表示を無効にすることができます。 これらのコマンドのすべては、同じ設定を制御し、これらのコマンドの以前の使用をオーバーライドするそれらのいずれかを使用できます。

l-os コマンドを使用してレジスタの表示を無効にすることもできます。 この設定は、他の 3 つのコマンドとは別です。 どのレジスタとフラグを表示するかを制御するには、 rm (レジスタ マスク) コマンドを使用します。

StartAddress
デバッガーが実行を開始するアドレスを指定します。 それ以外の場合、デバッガーは、命令ポインターが指す命令から開始します。 構文の詳細については、「 アドレスとアドレス範囲の構文」を参照してください。

StopAddress
実行を停止するアドレスを指定します。 このアドレスは、命令の正確なアドレスと一致している必要があります。

Command
ステップの実行後に実行するデバッガーコマンドを指定します。 このコマンドは、標準の pa 結果が表示される前に実行されます。 StopAddress も使用する場合、指定されたコマンドは StopAddress に到達した後 (ただし、最終ステップの結果が表示される前に) 実行されます。

Environment

項目 説明
モード ユーザー モード、カーネル モード
対象 ライブ デバッグのみ
プラットフォーム すべて

追加情報

関連するコマンドの詳細については、「ターゲットを制御」を参照してください。

解説

pa コマンドにより、ターゲットの実行が開始されます。 この実行は、指定された命令に到達するか、ブレークポイントが検出されるまで続行されます。

カーネル モードでこのコマンドを使用すると、任意の仮想アドレス空間内の指定された仮想アドレスで命令が検出されたときに実行が停止します。

この実行中、すべてのステップが明示的に表示されます。 呼び出された関数は、1 つの単位として扱われます。 したがって、このコマンドの表示は、プログラム カウンターが指定されたアドレスに達するまで p (ステップ) を繰り返し実行した場合に表示されるのと似ています。

たとえば、次のコマンドは、現在の関数の戻りアドレスに達するまで、ターゲット コードを明示的にステップ実行します。

0:000> pa @$ra 

次の例は、pa コマンドと kb コマンドを使用してスタック トレースを表示する方法を示しています。

0:000> pa 70b5d2f1 "kb"