k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace)

Perintah k* menampilkan bingkai tumpukan utas yang diberikan dengan informasi terkait.

Mode Pengguna, Prosesor 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]

Mode Kernel, Prosesor 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]

Mode Pengguna, Prosesor 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]

Mode Kernel, Prosesor 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]

Mode Pengguna, Prosesor 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]

Mode Kernel, Prosesor 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]

Parameter

Rangkaian
Menentukan tumpukan utas yang akan ditampilkan. Jika Anda menghilangkan parameter ini, tumpukan utas saat ini ditampilkan. Untuk informasi selengkapnya tentang sintaks utas, lihat Sintaks utas. Anda hanya dapat menentukan utas dalam mode pengguna.

Prosesor
Menentukan prosesor yang tumpukannya akan ditampilkan. Untuk informasi selengkapnya tentang sintaks prosesor, lihat Sintaks Multiprosesor.

b
Menampilkan tiga parameter pertama yang diteruskan ke setiap fungsi dalam pelacakan tumpukan.

c
Menampilkan pelacakan tumpukan bersih. Setiap baris tampilan hanya menyertakan nama modul dan nama fungsi.

p
Menampilkan semua parameter untuk setiap fungsi yang disebut dalam pelacakan tumpukan. Daftar parameter mencakup jenis data, nama, dan nilai setiap parameter. Opsi p ini peka huruf besar/kecil. Parameter ini memerlukan informasi simbol lengkap.

P
Menampilkan semua parameter untuk setiap fungsi yang disebut dalam jejak tumpukan, seperti p parameter . Namun, untuk P, parameter fungsi dicetak pada baris kedua tampilan, bukan pada baris yang sama dengan data lainnya.

v
Menampilkan informasi kelalaian penunjuk bingkai (FPO). Pada prosesor berbasis x86, tampilan juga mencakup informasi konvensi panggilan.

n
Menampilkan nomor bingkai.

f
Menampilkan jarak antara bingkai yang berdampingan. Jarak ini adalah jumlah byte yang memisahkan bingkai pada tumpukan aktual.

L
Menyembunyikan baris sumber dalam tampilan. L peka terhadap huruf besar/kecil.

M
Menampilkan output menggunakan bahasa markup Debugger. Setiap nomor bingkai dalam tampilan adalah tautan yang dapat Anda pilih untuk mengatur konteks lokal dan menampilkan variabel lokal. Untuk informasi tentang konteks lokal, lihat .frame.

FrameCount
Menentukan jumlah bingkai tumpukan yang akan ditampilkan. Anda harus menentukan angka ini dalam format heksadesimal kecuali Anda telah mengubah radix dengan menggunakan perintah n (atur basis angka). Gunakan perintah .kframe (atur panjang tumpukan) untuk menampilkan default dan untuk mengubah nilai.

BasePtr
Menentukan penunjuk dasar untuk pelacakan tumpukan. Parameter BasePtr hanya tersedia jika ada tanda sama dengan (=) setelah perintah.

StackPtr
Menentukan penunjuk tumpukan untuk pelacakan tumpukan. Jika Anda menghilangkan StackPtr dan InstructionPtr, perintah menggunakan penunjuk tumpukan yang ditentukan oleh register rsp (atau esp) dan penunjuk instruksi yang ditentukan oleh register rip (atau eip).

InstruksiPtr
Menentukan penunjuk instruksi untuk pelacakan tumpukan. Jika Anda menghilangkan StackPtr dan InstructionPtr, perintah menggunakan penunjuk tumpukan yang ditentukan oleh register rsp (atau esp) dan penunjuk instruksi yang ditentukan oleh register rip (atau eip).

WordCount
Menentukan jumlah nilai DWORD_PTR dalam tumpukan untuk dibuang.

Lingkungan  
Mode Mode pengguna, mode kernel
Target Live, crash dump
Platform Semua

Keterangan

Saat Anda mengeluarkan kperintah , kb, kp, kPatau kv , atau , pelacakan tumpukan ditampilkan dalam format tabular. Jika pemuatan baris diaktifkan, modul sumber dan nomor baris juga ditampilkan.

Pelacakan tumpukan mencakup penunjuk dasar untuk bingkai tumpukan, alamat pengembalian, dan nama fungsi.

Jika Anda menggunakan kp perintah atau kP , parameter lengkap untuk setiap fungsi yang disebut dalam pelacakan tumpukan ditampilkan. Daftar parameter mencakup jenis data, nama, dan nilai setiap parameter.

Perintah mungkin lambat. Misalnya, ketika MyFunction1 panggilan MyFunction2, debugger harus memiliki informasi simbol penuh untuk MyFunction1 menampilkan parameter yang diteruskan dalam panggilan ini. Perintah ini tidak sepenuhnya menampilkan rutinitas internal Microsoft Windows yang tidak diekspos dalam simbol publik.

Jika Anda menggunakan kb perintah atau kv , tiga parameter pertama yang diteruskan ke setiap fungsi akan ditampilkan. Jika Anda menggunakan kv perintah , data FPO juga ditampilkan.

Pada prosesor berbasis x86, kv perintah juga menampilkan informasi konvensi panggilan.

Saat Anda menggunakan kv perintah , informasi FPO ditambahkan di akhir baris dalam format berikut.

Teks FPO Makna
FPO: [non-Fpo] Tidak ada data FPO untuk bingkai.
FPO: [N1,N2,N3] N1 adalah jumlah total parameter.

N2 adalah jumlah nilai DWORD untuk variabel lokal.

N3 adalah jumlah register yang disimpan.
FPO: [N1,N2] TrapFrame @ Address N1 adalah jumlah total parameter.

N2 adalah jumlah nilai DWORD untuk lokal.

Alamat adalah alamat bingkai perangkap.
FPO: TaskGate Segment:0 Segmen adalah pemilih segmen untuk gerbang tugas.
FPO: [EBP 0xBase] Dasar adalah penunjuk dasar untuk bingkai.

kd Perintah menampilkan data tumpukan mentah. Setiap nilai DWORD ditampilkan pada baris terpisah. Informasi simbol ditampilkan untuk baris tersebut bersama dengan simbol terkait. Format ini membuat daftar yang lebih rinci daripada perintah lainnya k* . Perintah kd ini setara dengan perintah dds (memori tampilan) yang menggunakan alamat tumpukan sebagai parameternya.

Jika Anda menggunakan k perintah di awal fungsi (sebelum prolog fungsi dijalankan), Anda menerima hasil yang salah. Debugger menggunakan frame register untuk menghitung backtrace saat ini, dan register ini tidak diatur dengan benar untuk fungsi sampai prolognya dijalankan.

Dalam mode pengguna, pelacakan tumpukan didasarkan pada tumpukan utas saat ini. Untuk informasi selengkapnya tentang utas, lihat Mengontrol proses dan utas.

Dalam mode kernel, pelacakan tumpukan didasarkan pada konteks register saat ini. Anda dapat mengatur konteks register agar sesuai dengan utas, rekaman konteks, atau bingkai trap tertentu.

Informasi Tambahan

Untuk informasi selengkapnya tentang konteks Daftar dan pengaturan konteks lainnya, lihat Mengubah konteks.