k、kb、kc、kd、kp、kP、kv (スタック バックトレースの表示)

k * コマンド は、関連情報と共に、指定されたスレッドのスタック フレームを表示します。

ユーザー モード、x86 プロセッサ

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr StackPtr InstructionPtr
[~Thread] kd [WordCount]

カーネル モード、x86 プロセッサ

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr StackPtr InstructionPtr
[Processor] kd [WordCount]

ユーザー モード、x64 プロセッサ

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[~Thread] kd [WordCount]

カーネル モード、x64 プロセッサ

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[Processor] kd [WordCount]

ユーザー モード、ARM プロセッサ

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[~Thread] kd [WordCount]

カーネル モード、ARM プロセッサ

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[Processor] kd [WordCount]

パラメーター

スレッド
スタックを表示するスレッドを指定します。 このパラメーターを省略すると、現在のスレッドのスタックが表示されます。 スレッド構文の詳細については、「スレッド構文」 を参照してください。 スレッドは、ユーザー モードでのみ指定できます。

プロセッサ
スタックを表示するプロセッサを指定します。 プロセッサ構文の詳細については、「マルチプロセッサ構文 」を参照してください

B
スタック トレースの各関数に渡される最初の 3 つのパラメーターを表示します。

C
クリーン スタック トレースを表示します。 各表示行には、モジュール名と関数名だけが含まれます。

P
スタック トレースで呼び出される各関数のすべてのパラメーターを表示します。 パラメーター リストには、各パラメーターのデータ型、名前、および値が含まれます。 p オプションでは大文字と小文字が区別されます。 このパラメーターには、完全なシンボル情報が必要です。

P
スタック トレースで呼び出される各関数のすべてのパラメーター (p パラメーターなど) を表示します。 ただし、P の場合、関数パラメーターは、残りのデータと同じ行ではなく、ディスプレイの 2 行目に出力されます。

V
フレーム ポインターの省略 (FPO) 情報を表示します。 x86 ベースのプロセッサでは、表示には呼び出し規約情報も含まれます。

N
フレーム番号を表示します。

F
隣接するフレーム間の距離を表示します。 この距離は、実際のスタック上のフレームを分離するバイト数です。

L
表示内のソース行を非表示にする。 L では大文字と小文字が区別されます。

M
デバッガー マークアップ言語 を 使用して出力を表示します。 ディスプレイ内の各フレーム番号は、ローカル コンテキストを設定し、ローカル変数を表示するために選択できるリンクです。 ローカル コンテキストの詳細については、「.frame 」 を参照してください

FrameCount
表示するスタック フレームの数を指定します。 n (Set Number Base) コマンドを使用して基数を変更しない限り、この数値を 16 進数 形式で指定する必要 があります。 既定値は 20 (0x14)、.kframes (Set Stack Length) コマンドを使用して既定値を変更した場合を示します。

BasePtr
スタック トレースのベース ポインターを指定します。 BasePtr パラメーター は、 コマンドの後に等号 (=) がある場合にのみ使用できます。

StackPtr
スタック トレースのスタック ポインターを指定します。 StackPtrInstructionPtr を省略した場合、コマンドは rsp (または esp) レジスタが指定するスタック ポインターと、rip (または eip) レジスタが指定する命令ポインターを使用します。

InstructionPtr
スタック トレースの命令ポインターを指定します。 StackPtrInstructionPtr を省略した場合、コマンドは rsp (または esp) レジスタが指定するスタック ポインターと、rip (または eip) レジスタが指定する命令ポインターを使用します。

WordCount
ダンプするスタック内の DWORD _ PTR 値の数を指定します。 .kframes (スタック長の設定) コマンドを使用して既定値を変更しない限り、既定値は 20 (0x14) です。

環境

モード

ユーザー モード、カーネル モード

ターゲット

ライブ、クラッシュ ダンプ

プラットフォーム

すべて

追加情報

レジスタ コンテキストと他のコンテキスト設定の詳細については、「コンテキストの変更」 を参照してください

解説

k、kb、kp、kP、または kv コマンドを発行すると、スタック トレースが表形式で表示されます。 行の読み込みが有効になっている場合は、ソース モジュールと行番号も表示されます。

スタック トレースには、スタック フレームのベース ポインター、戻りアドレス、および関数名が含まれます。

kp または kP コマンドを使用すると、スタック トレースで呼び出される各関数の完全なパラメーターが表示されます。 パラメーター リストには、各パラメーターのデータ型、名前、および値が含まれます。

このコマンドは低速である可能性があります。 たとえば 、MyFunction1MyFunction2 を呼び出す場合、この呼び出しで渡されるパラメーターを表示するには、デバッガーに MyFunction1 の完全なシンボル情報が必要です。 このコマンドは、パブリック シンボルで公開Windows Microsoft の内部ルーチンを完全に表示する機能ではありません。

kb または kv コマンドを****使用すると、各関数に渡される最初の 3 つのパラメーターが表示されます。 kv コマンドを 使用すると 、FPO データも表示されます。

x86 ベースのプロセッサでは 、kv コマンドによって 呼び出し規約情報も表示されます。

kv コマンドを 使用すると 、FPO 情報が行の末尾に次の形式で追加されます。

FPO テキスト 意味
FPO: [非 Fpo]

フレームの FPO データはありません。

FPO: [N1,N2,N3]

N1 は、パラメーターの総数です。

N2 は、ローカル変数の DWORD 値の数です。

N3 は、保存されるレジスタの数です。

FPO: [N1,N2] TrapFrame @ Address

N1 は、パラメーターの総数です。

N2 は、ローカルの DWORD 値の数です。

アドレス はトラップ フレームのアドレスです。

FPO: TaskGate Segment:0

セグメント は、タスク ゲートのセグメント セレクターです。

FPO: [EBP 0xBase]

Base は、フレームの基本ポインターです。

Kd コマンドは、未加工のスタックデータを表示します。 各 DWORD 値は、別の行に表示されます。 シンボル情報は、関連付けられているシンボルと共に、それらの行に対して表示されます。 この形式では、他の k コマンドよりも詳細な一覧が作成さ * れます。 Kd コマンドは、パラメーターとしてスタックアドレスを使用する Dds (ディスプレイメモリ)コマンドに相当します。

関数の先頭で k コマンド (関数プロローグが実行される前) を使用すると、正しくない結果が返されます。 デバッガーはフレームレジスタを使用して現在のバックトレースを計算します。このレジスタは、プロローグが実行されるまで、関数に対して正しく設定されていません。

ユーザーモードでは、スタックトレースは、現在のスレッドのスタックに基づいています。 スレッドの詳細については、「 プロセスとスレッドの制御」を参照してください。

カーネルモードでは、スタックトレースは現在の レジスタコンテキストに基づいています。 レジスタコンテキストは、特定のスレッド、コンテキストレコード、またはトラップフレームに一致するように設定できます。

追加情報

レジスタコンテキストとその他のコンテキスト設定の詳細については、「 コンテキストの変更」を参照してください。