Bagikan melalui


Objek Debugger Asli di Ekstensi JavaScript - Ketik Objek

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
NamaHarta bendaMengembalikan nama tipe.
ukuranHarta bendaMengembalikan ukuran jenis sebagai nilai 64-bit.
typeKindHarta bendaMengembalikan jenis tipe sebagai string. Ini bisa menjadi salah satu nilai berikut: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum", atau "intrinsic".
baseTypeHarta bendaMengembalikan 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.
BidangHarta bendaMengembalikan 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.
baseClassesHarta bendaMengembalikan array dari semua kelas dasar langsung dari tipe tersebut. Setiap objek dalam array adalah objek kelas dasar seperti yang dijelaskan di bawah ini.
functionReturnTypeHarta bendaUntuk jenis fungsi, ini mengembalikan objek jenis yang mewakili jenis pengembalian fungsi.
functionParameterTypesHarta bendaUntuk jenis fungsi, ini mengembalikan array objek jenis yang mewakili jenis parameter fungsi.
konvensi pemanggilan fungsiHarta bendaUntuk jenis fungsi, ini mengembalikan konvensi panggilan fungsi sebagai string. Ini bisa menjadi salah satu nilai berikut: "unknown", "__cdecl", "fastcall", "stdcall", atau "thiscall".
pointerKindHarta bendaUntuk jenis penunjuk, ini mengembalikan jenis penunjuk sebagai string. Ini bisa menjadi salah satu nilai berikut: "standar", "referensi", "rValueReference", atau "cxHat".
anggota JenisHarta bendaUntuk jenis penunjuk yang merupakan penunjuk anggota, ini mengembalikan objek jenis yang mewakili kelas anggota.
isGenericHarta bendaMengembalikan apakah jenisnya generik atau tidak. Ini akan mengembalikan "true" untuk jenis templat.
genericArgumentsHarta bendaUntuk tipe yang generik, ini akan mengembalikan array argumen generik. Argumen tersebut dapat berupa argumen jenis atau mungkin nilai konstanta.
isBitFieldHarta bendaMengembalikan apakah penyimpanan untuk tipe berupa bitfield atau tidak.
bitFieldPositionsHarta bendaUntuk 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
NamaHarta bendaMengembalikan nama bidang.
jenisHarta bendaMengembalikan objek jenis yang mewakili tipe statis bidang.
locationKindHarta bendaMengembalikan jenis lokasi (penyimpanan) untuk bidang sebagai string. Ini bisa menjadi salah satu nilai berikut: "anggota", "statis", "konstanta", atau "tidak ada".
OffsetHarta bendaUntuk bidang yang memiliki jenis lokasi yang menunjukkan offset (misalnya: "anggota"), ini mengembalikan offset bidang dalam jenis yang memuatnya sebagai nilai 64-bit.
lokasiHarta bendaUntuk bidang yang memiliki jenis lokasi yang menunjukkan lokasi (misalnya: "statis"), ini mengembalikan lokasi bidang sebagai objek lokasi.
nilaiHarta bendaUntuk 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
NamaHarta bendaMengembalikan nama kelas dasar.
OffsetHarta bendaMengembalikan offset dari kelas dasar ini dalam tipe yang mengandung.
jenisHarta bendaMengembalikan 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

Pemrograman Debugger JavaScript

Contoh Skrip JavaScript Debugger