Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Objek debugger asli mewakili berbagai konstruksi lingkungan debugger. Ekstensi JavaScript memiliki akses langsung ke sistem jenis bahasa yang mendasar. Akses ini dinyatakan melalui gagasan jenis objek. Topik ini menjelaskan properti yang terkait dengan objek jenis.
Objek debugger asli mewakili berbagai konstruksi dan perilaku lingkungan debugger. Objek JavaScript dapat diteruskan ke ekstensi JavaScript (atau diperoleh dalam ekstensi) untuk memanipulasi status debugger.
Untuk informasi tentang ekstensi JavaScript objek Debugger, lihat Objek Debugger Asli di Ekstensi JavaScript.
Untuk informasi umum tentang bekerja dengan JavaScript, lihat Pembuatan Skrip JavaScript Debugger.
Jenis Objek
Objek jenis dapat diperoleh dengan sejumlah cara:
- Dari Objek: Jika skrip memiliki objek asli dalam JavaScript, properti targetType dapat diakses pada objek tersebut untuk mendapatkan objek jenis yang mewakili jenis statis objek asli.
- Dari Host: HOST.getModuleType API dapat dipanggil untuk mengembalikan objek jenis untuk jenis apa pun yang ditentukan dalam modul tertentu.
Setelah objek jenis diperoleh, objek tersebut memiliki properti berikut:
| Nama | Tanda tangan | Deskripsi |
| Nama | Harta benda | Mengembalikan nama tipe. |
| ukuran | Harta benda | Mengembalikan ukuran jenis sebagai nilai 64-bit. |
| typeKind | Harta benda | Mengembalikan jenis tipe sebagai string. Ini bisa menjadi salah satu nilai berikut: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum", atau "intrinsic". |
| baseType | Harta benda | Mengembalikan objek tipe untuk jenis dasar ini. Ini tidak mewakili pewarisan C++. Untuk tipe pointer, ini adalah tipe dari objek yang ditunjuk. Untuk jenis array, ini adalah jenis yang terkandung dalam array. |
| Bidang | Harta benda | Mengembalikan objek yang memiliki semua bidang bernama dari tipe tersebut, yang dapat diakses sebagai properti bernama. Nilai setiap properti adalah objek bidang seperti yang dijelaskan di bawah ini. |
| baseClasses | Harta benda | Mengembalikan array dari semua kelas dasar langsung dari tipe tersebut. Setiap objek dalam array adalah objek kelas dasar seperti yang dijelaskan di bawah ini. |
| functionReturnType | Harta benda | Untuk jenis fungsi, ini mengembalikan objek jenis yang mewakili jenis pengembalian fungsi. |
| functionParameterTypes | Harta benda | Untuk jenis fungsi, ini mengembalikan array objek jenis yang mewakili jenis parameter fungsi. |
| konvensi pemanggilan fungsi | Harta benda | Untuk jenis fungsi, ini mengembalikan konvensi panggilan fungsi sebagai string. Ini bisa menjadi salah satu nilai berikut: "unknown", "__cdecl", "fastcall", "stdcall", atau "thiscall". |
| pointerKind | Harta benda | Untuk jenis penunjuk, ini mengembalikan jenis penunjuk sebagai string. Ini bisa menjadi salah satu nilai berikut: "standar", "referensi", "rValueReference", atau "cxHat". |
| anggota Jenis | Harta benda | Untuk jenis penunjuk yang merupakan penunjuk anggota, ini mengembalikan objek jenis yang mewakili kelas anggota. |
| isGeneric | Harta benda | Mengembalikan apakah jenisnya generik atau tidak. Ini akan mengembalikan "true" untuk jenis templat. |
| genericArguments | Harta benda | Untuk tipe yang generik, ini akan mengembalikan array argumen generik. Argumen tersebut dapat berupa argumen jenis atau mungkin nilai konstanta. |
| isBitField | Harta benda | Mengembalikan apakah penyimpanan untuk tipe berupa bitfield atau tidak. |
| bitFieldPositions | Harta benda | Untuk jenis yang mewakili penyimpanan bitfield, ini akan mengembalikan jenis deskripsi bidang bit yang menunjukkan posisi bitfield. |
Semua entri ini ada selama inisialisasi fase 2.
Objek Lapangan
Setiap bidang dalam jenis dijelaskan oleh objek bidang yang memiliki properti sebagai berikut:
| Nama | Tanda tangan | Deskripsi |
| Nama | Harta benda | Mengembalikan nama bidang. |
| jenis | Harta benda | Mengembalikan objek jenis yang mewakili tipe statis bidang. |
| locationKind | Harta benda | Mengembalikan jenis lokasi (penyimpanan) untuk bidang sebagai string. Ini bisa menjadi salah satu nilai berikut: "anggota", "statis", "konstanta", atau "tidak ada". |
| Offset | Harta benda | Untuk bidang yang memiliki jenis lokasi yang menunjukkan offset (misalnya: "anggota"), ini mengembalikan offset bidang dalam jenis yang memuatnya sebagai nilai 64-bit. |
| lokasi | Harta benda | Untuk bidang yang memiliki jenis lokasi yang menunjukkan lokasi (misalnya: "statis"), ini mengembalikan lokasi bidang sebagai objek lokasi. |
| nilai | Harta benda | Untuk bidang yang memiliki jenis lokasi yang menunjukkan nilai (misalnya: "konstanta"), ini mengembalikan nilai bidang. |
Semua entri ini ada selama inisialisasi fase 2.
Objek Kelas Dasar
Setiap kelas dasar dalam jenis dijelaskan oleh objek kelas dasar yang memiliki properti sebagai berikut:
| Nama | Tanda tangan | Deskripsi |
| Nama | Harta benda | Mengembalikan nama kelas dasar. |
| Offset | Harta benda | Mengembalikan offset dari kelas dasar ini dalam tipe yang mengandung. |
| jenis | Harta benda | Mengembalikan objek jenis yang mewakili jenis statis kelas dasar. |
Semua entri ini ada selama inisialisasi fase 2.
Contoh Kode
Untuk contoh kode, lihat skrip ImageInfo.js. Untuk informasi selengkapnya tentang sampel kode, lihat Contoh Skrip JavaScript Debugger.
// fieldType references basic types that should be present in **ANY** symbolic information.
// Just grab the first module as the "reference module" for this purpose. We cannot grab
// "ntdll" generically as we want to avoid a situation in which the debugger opens a module (-z ...)
// from failing.
//
var moduleName = contextInheritorModule.__ComparisonName;
var typeObject = host.getModuleType(moduleName, field.fieldType, contextInheritorModule);
var result = host.createTypedObject(addr, typeObject);
Lihat juga
Objek Debugger Asli di ekstensi JavaScript
Objek Debugger Asli di Ekstensi JavaScript - Pertimbangan Desain dan Pengujian