Pseudovariable dalam pen-debug Visual Studio
Pseudovariable adalah istilah yang digunakan untuk menampilkan informasi tertentu dalam jendela variabel atau kotak dialog QuickWatch. Anda dapat memasukkan pseudovariable dengan cara yang sama seperti memasukkan variabel normal. Namun, pseudovariable bukan variabel dan tidak sesuai dengan nama variabel dalam program Anda.
Contoh
Misalkan Anda menulis aplikasi kode asli dan ingin melihat jumlah handel yang dialokasikan dalam aplikasi Anda. Di jendela Watch, Anda dapat memasukkan pseudovariable berikut di kolom Nama, lalu tekan Return untuk mengevaluasinya:
$handles
Dalam kode asli, Anda bisa menggunakan pseudovariables yang diperlihatkan dalam tabel berikut:
Pseudovariable | Fungsi |
---|---|
$err |
Menampilkan nilai kesalahan terakhir yang ditetapkan dengan fungsi SetLastError. Nilai yang ditampilkan mewakili apa yang akan dimunculkan oleh fungsi GetLastError. Gunakan $err,hr untuk melihat bentuk nilai ini yang didekodekan. Misalnya, jika kesalahan terakhir adalah 3, $err,hr akan menampilkan ERROR_PATH_NOT_FOUND : The system cannot find the path specified. |
$handles |
Menampilkan jumlah handel yang dialokasikan di aplikasi Anda. |
$vframe |
Menampilkan alamat bingkai tumpukan saat ini. |
$tid |
Menampilkan ID utas untuk utas saat ini. |
$env |
Menampilkan blok lingkungan dalam penampil string. |
$cmdline |
Menampilkan string baris perintah yang meluncurkan program. |
$pid |
Menampilkan ID proses. |
$ nama registeror @ nama register |
Menampilkan isi daftar registername. Biasanya, Anda dapat menampilkan konten register hanya dengan memasukkan nama register. Satu-satunya waktu untuk menggunakan sintaks ini adalah ketika nama register membebani nama variabel. Jika nama daftarnya sama dengan nama variabel dalam cakupan saat ini, pen-debug akan menginterpretasikan namanya sebagai nama variabel. Saat itulah $ registername atau @ registername berguna. |
$clk |
Menampilkan waktu dalam siklus jam. |
$user |
Menampilkan struktur dengan informasi akun untuk akun yang menjalankan aplikasi. Untuk alasan keamanan, informasi kata sandi tidak ditampilkan. |
$exceptionstack |
Menampilkan jejak tumpukan pengecualian Runtime Windows saat ini. $ exceptionstack hanya berfungsi di aplikasi UWP. $ exceptionstack tidak didukung untuk pengecualian C++ dan SEH |
$returnvalue |
Menampilkan nilai pengembalian metode. |
Di C#, Anda bisa menggunakan pseudovariable yang diperlihatkan dalam tabel berikut:
Pseudovariable | Fungsi |
---|---|
$exception |
Menampilkan informasi tentang pengecualian terakhir. Jika tidak ada pengecualian yang terjadi, mengevaluasi $exception akan menampilkan pesan kesalahan.Saat Asisten Pengecualian dinonaktifkan, $exception ditambahkan secara otomatis ke jendela Lokal saat pengecualian terjadi. |
$user |
Menampilkan struktur dengan informasi akun untuk akun yang menjalankan aplikasi. Untuk alasan keamanan, informasi kata sandi tidak ditampilkan. |
$returnvalue |
Menampilkan nilai pengembalian dari metode .NET. |
$threadSmallObjectHeapBytes |
Menampilkan jumlah total byte yang dialokasikan dalam timbunan objek kecil oleh utas saat ini. (.NET 6+) |
$threadUserOldHeapBytes |
Menampilkan jumlah total byte yang dialokasikan dalam timbunan lama pengguna berdasarkan utas saat ini. User Old Heap = Large Object Heap + Pinned Object Heap (.NET 6+) |
Di Visual Basic, Anda bisa menggunakan pseudovariable yang diperlihatkan dalam tabel berikut:
Pseudovariable | Fungsi |
---|---|
$exception |
Menampilkan informasi tentang pengecualian terakhir. Jika tidak ada pengecualian yang terjadi, mengevaluasi $exception akan menampilkan pesan kesalahan. |
$delete atau $$delete |
Menghapus variabel implisit yang dibuat di jendela Langsung. Sintaksnya adalah $delete, variabel atau$delete, variabel. |
$objectids atau $listobjectids |
Menampilkan semua ID Objek aktif sebagai turunan dari ekspresi yang ditentukan. Sintaksnya adalah $objectid, ekspresi atau$listobjectids, ekspresi. |
$ N # |
Menampilkan objek dengan ID Objek sama dengan N. |
$dynamic |
Menampilkan node Tampilan Dinamis khusus untuk objek yang mengimplementasikan IDynamicMetaObjectProvider . Antarmuka. Sintaksnya adalah $dynamic, objek. Fitur ini hanya berlaku untuk kode yang menggunakan .NET Framework versi 4 atau yang lebih baru. |