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 dapat diteruskan ke (atau diperoleh dalam) ekstensi JavaScript 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 Scripting JavaScript Debugger.

Ketik 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:

NamaTanda tanganDeskripsi
namaPropertiMengembalikan nama jenis.
UkuranPropertiMengembalikan ukuran jenis sebagai nilai 64-bit.
typeKindPropertiMengembalikan jenis jenis sebagai string. Ini bisa menjadi salah satu nilai berikut: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum", atau "intrinsic".
baseTypePropertiMengembalikan objek tipe untuk tipe yang menjadi dasar tipe ini. Ini tidak mewakili pewarisan C++. Untuk jenis penunjuk, ini adalah jenis hal yang ditujukan. Untuk jenis array, ini adalah jenis yang terkandung dalam array.
fieldsPropertiMengembalikan objek yang memiliki semua bidang bernama dari jenis yang dapat diakses sebagai properti bernama. Nilai setiap properti adalah objek bidang seperti yang dijelaskan di bawah ini.
baseClassesPropertiMengembalikan array dari semua kelas dasar langsung dari jenis tersebut. Setiap objek dalam array adalah objek kelas dasar seperti yang dijelaskan di bawah ini.
functionReturnTypePropertiUntuk jenis fungsi, ini mengembalikan objek jenis yang mewakili jenis pengembalian fungsi.
functionParameterTypesPropertiUntuk jenis fungsi, ini mengembalikan array objek jenis yang mewakili jenis parameter fungsi.
functionCallingConventionPropertiUntuk jenis fungsi, ini mengembalikan konvensi panggilan fungsi sebagai string. Ini bisa menjadi salah satu nilai berikut: "unknown", "__cdecl", "fastcall", "stdcall", atau "thiscall".
pointerKindPropertiUntuk jenis penunjuk, ini mengembalikan jenis penunjuk sebagai string. Ini bisa menjadi salah satu nilai berikut: "standar", "referensi", "rValueReference", atau "cxHat".
memberTypePropertiUntuk jenis penunjuk yang merupakan penunjuk anggota, ini mengembalikan objek jenis yang mewakili kelas anggota.
isGenericPropertiMengembalikan apakah jenisnya generik atau tidak. Ini akan mengembalikan true untuk jenis templat.
genericArgumentsPropertiUntuk jenis yang umum, ini akan mengembalikan array argumen generik. Argumen tersebut dapat berupa argumen jenis atau mungkin nilai konstanta.
isBitFieldPropertiMengembalikan apakah penyimpanan untuk jenis tersebut adalah bitfield atau tidak.
bitFieldPositionsPropertiUntuk 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 Bidang

Setiap bidang dalam jenis dijelaskan oleh objek bidang yang memiliki properti sebagai berikut:

NamaTanda tanganDeskripsi
namaPropertiMengembalikan nama bidang.
jenisPropertiMengembalikan objek jenis yang mewakili tipe statis bidang.
locationKindPropertiMengembalikan jenis lokasi (penyimpanan) untuk bidang sebagai string. Ini bisa menjadi salah satu nilai berikut: "anggota", "statis", "konstanta", atau "tidak ada".
offsetPropertiUntuk bidang yang memiliki jenis lokasi yang menunjukkan offset (misalnya: "anggota"), ini mengembalikan offset bidang dalam jenis yang berisi sebagai nilai 64-bit.
lokasiPropertiUntuk bidang yang memiliki jenis lokasi yang menunjukkan lokasi (misalnya: "statis"), ini mengembalikan lokasi bidang sebagai objek lokasi.
nilaiPropertiUntuk 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:

NamaTanda tanganDeskripsi
namaPropertiMengembalikan nama kelas dasar.
offsetPropertiMengembalikan offset kelas dasar ini dalam jenis yang berisi.
jenisPropertiMengembalikan 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

Pembuatan Skrip JavaScript Debugger

Contoh Skrip JavaScript Debugger