.frame (Atur Konteks Lokal)

Perintah .frame menentukan konteks lokal (cakupan) mana yang digunakan untuk menginterpretasikan variabel lokal atau menampilkan konteks lokal saat ini.

.frame [/c] [/r] [FrameNumber] 
.frame [/c] [/r] = BasePtr [FrameIncrement] 
.frame [/c] [/r] = BasePtr StackPtr InstructionPtr 

Parameter

/C
Mengatur bingkai yang ditentukan sebagai konteks penimpaan lokal saat ini. Tindakan ini memungkinkan pengguna untuk mengakses register nonvolatile untuk fungsi apa pun di tumpukan panggilan.

/R
Menampilkan daftar dan informasi lain tentang konteks lokal yang ditentukan.

FrameNumber
Menentukan jumlah bingkai yang konteks lokalnya Anda inginkan. Jika parameter ini nol, perintah menentukan bingkai saat ini. Jika Anda menghilangkan parameter ini, perintah ini menampilkan konteks lokal saat ini.

BasePtr
Menentukan penunjuk dasar untuk jejak tumpukan yang digunakan untuk menentukan bingkai, jika Anda menambahkan tanda sama dengan (=) setelah nama perintah (.frame). Pada prosesor berbasis x86, Anda menambahkan argumen lain setelah BasePtr (yang ditafsirkan sebagai FrameIncrement) atau dua argumen lagi setelah BasePtr (yang ditafsirkan sebagai InstruksiPtr dan StackPtr).

FrameIncrement
(hanya prosesor berbasis x86)

Menentukan jumlah bingkai tambahan yang melewati penunjuk dasar. Misalnya, jika penunjuk dasar 0x0012FF00 adalah alamat bingkai 3, perintah .frame 12ff00 setara dengan .frame 3, dan .frame 12ff00 2 setara dengan .frame 5.

StackPtr
(hanya prosesor berbasis x86) Menentukan penunjuk tumpukan untuk pelacakan tumpukan yang digunakan untuk menentukan bingkai. Jika Anda menghilangkan StackPtr dan InstructionPtr, debugger menggunakan penunjuk tumpukan yang ditentukan oleh register esp dan pointer instruksi yang ditentukan oleh register eip .

InstruksiPtr
(hanya prosesor berbasis x86) Menentukan penunjuk instruksi untuk pelacakan tumpukan yang digunakan untuk menentukan bingkai. Jika Anda menghilangkan StackPtr dan InstructionPtr, debugger menggunakan penunjuk tumpukan yang ditentukan oleh register esp dan pointer instruksi yang ditentukan oleh register eip .

Lingkungan

Item Deskripsi
Mode Mode pengguna, mode kernel
Target Live, crash dump
Platform Semua

Informasi Tambahan

Untuk informasi selengkapnya tentang konteks lokal dan pengaturan konteks lainnya, lihat Mengubah Konteks. Untuk informasi selengkapnya tentang cara menampilkan variabel lokal dan perintah terkait memori lainnya, lihat Membaca dan Menulis Memori.

Keterangan

Ketika aplikasi berjalan, arti variabel lokal tergantung pada lokasi penghitung program, karena cakupan variabel tersebut hanya meluas ke fungsi yang ditentukan. Jika Anda tidak menggunakan perintah .frame , debugger menggunakan cakupan fungsi saat ini (bingkai saat ini pada tumpukan) sebagai konteks lokal.

Untuk mengubah konteks lokal, gunakan perintah .frame dan tentukan nomor bingkai yang Anda inginkan.

Nomor bingkai adalah posisi bingkai tumpukan dalam pelacakan tumpukan. Anda dapat melihat jejak tumpukan ini dengan perintah k (Display Stack Backtrace) atau jendela Panggilan. Baris pertama (bingkai saat ini) adalah bingkai nomor 0. Baris berikutnya mewakili nomor bingkai 1, 2, 3, dan sebagainya.

Jika Anda menggunakan parameter n dengan perintah k , perintah k menampilkan nomor bingkai bersama dengan pelacakan tumpukan. Nomor bingkai ini selalu ditampilkan dalam bentuk heksadesimal. Di sisi lain, perintah .frame menginterpretasikan argumennya dalam radix default, kecuali Anda mengambil alih pengaturan ini dengan awalan seperti 0x. Untuk mengubah radix default, gunakan perintah n (Atur Basis Angka).

Anda dapat mengatur konteks lokal ke bingkai tumpukan yang berbeda untuk memungkinkan Anda melihat informasi variabel lokal baru. Namun, variabel aktual yang tersedia bergantung pada kode yang sedang dijalankan.

Konteks lokal diatur ulang ke cakupan penghitung program jika ada eksekusi aplikasi yang terjadi. Konteks lokal diatur ulang ke bingkai tumpukan atas jika konteks register diubah.