Aracılığıyla paylaş


JavaScript Uzantılarında Yerel Hata Ayıklayıcı Nesneleri - Tür Nesneleri

Yerel hata ayıklayıcı nesneleri, hata ayıklayıcı ortamının çeşitli yapılarını temsil eder. JavaScript uzantıları, temel alınan dilin tür sistemine doğrudan erişime sahiptir. Bu erişim, tür nesneleriyle ifade edilir. Bu konu, tür nesneleriyle ilişkili özellikleri açıklar.

Yerel hata ayıklayıcı nesneleri, hata ayıklayıcı ortamının çeşitli yapılarını ve davranışlarını temsil eder. Nesneler, hata ayıklayıcının durumunu değiştirmek için JavaScript uzantılarına geçirilebilir (veya içinde edinilebilir).

Hata Ayıklayıcı nesnesi JavaScript uzantıları hakkında bilgi için bkz. JavaScript Uzantılarında Yerel Hata Ayıklayıcı Nesneleri.

JavaScript ile çalışma hakkında genel bilgi için bkz. JavaScript Hata Ayıklayıcısı Betiği Oluşturma.

Tür Nesneleri

Bir tür nesnesi çeşitli yollarla edinilebilir:

  • Nesneden: Betiğin JavaScript içinde yerel bir nesnesi varsa, yerel nesnenin statik türünü temsil eden bir tür nesnesi almak için bu nesnede targetType özelliğine erişilebilir.
  • Konaktan: Host.getModuleType API'si, belirli bir modülde tanımlanan herhangi bir türün tür nesnesini döndürmek için çağrılabilir.

Tür nesnesi alındıktan sonra aşağıdaki özelliklere sahiptir:

İsim İmza Açıklama
isimMülkiyetTürün adını döndürür.
boyutMülkiyetTürün boyutunu 64 bit değer olarak döndürür.
typeKindMülkiyetTürün tipini bir dize olarak döndürür. Bu, şu değerlerden biri olabilir: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" veya "intrinsic".
TemelTipMülkiyetBu türün temel aldığı tür için bir tür nesnesi döndürür. Bu, C++ devralmayı temsil etmez. İşaretçi türü için bu, işaret edilen şeyin türüdür. Dizi türü için bu, dizide bulunan türdür.
AlanlarıMülkiyetTürün adlandırılmış tüm alanlarının adlandırılmış özellikler olarak erişilebilir olduğu bir nesne döndürür. Her özelliğin değeri aşağıda açıklandığı gibi bir alan nesnesidir .
temel sınıflarMülkiyetTürün tüm doğrudan temel sınıflarından oluşan bir diziyi döndürür. Dizideki her nesne, aşağıda açıklandığı gibi bir temel sınıf nesnesidir .
fonksiyonDönüşTipiMülkiyetİşlev türleri için bu, işlevin dönüş türünü temsil eden bir tür nesnesi döndürür.
fonksiyonParametreTipleriMülkiyetİşlev türleri için, işlevin parametre türlerini temsil eden bir tür nesneleri dizisi döndürür.
Fonksiyon Çağrı KuralıMülkiyetİşlev türleri için bu, işlevin çağırma kuralını dize olarak döndürür. Bu, şu değerlerden biri olabilir: "unknown", "__cdecl", "fastcall", "stdcall" veya "thiscall".
pointerKindMülkiyetİşaretçi türleri için bu, işaretçi türünü dize olarak döndürür. Bu, şu değerlerden biri olabilir: "standard", "reference", "rValueReference" veya "cxHat".
memberType (üye türü)MülkiyetÜye işaretçileri olan işaretçi türleri için bu, üye sınıfını temsil eden bir tür nesnesi döndürür.
isGenericMülkiyetTürün genel olup olmadığını döndürür. Bu, şablon türleri için true değerini döndürür.
genelArgümanlarMülkiyetGenel olan türler için bu, genel bağımsız değişkenler dizisi döndürür. Bu tür argümanlar tür argümanları veya sabit değerler olabilir.
isBitFieldMülkiyetTürün depolama alanının bit alanı olup olmadığını döndürür.
bit alanı pozisyonlarıMülkiyetBit alanı depolamasını temsil eden türler için bu, bit alanının konumlarını gösteren bir bit alanı açıklama tipi döndürür.

Bu girdilerin tümü 2. aşama başlatma sırasında bulunur.

Alan Nesneleri

Bir tür içindeki her alan, aşağıdaki özelliklere sahip bir alan nesnesi tarafından açıklanır:

İsim İmza Açıklama
isimMülkiyetAlanın adını döndürür.
türMülkiyetAlanın statik türünü temsil eden bir tür nesnesi döndürür.
konumTürüMülkiyetAlanın konum türünü (depolama) dize olarak döndürür. Bu, şu değerlerden biri olabilir: "member", "static", "constant" veya "none".
ofset baskıMülkiyetUzaklığı (örneğin, "üye") gösteren konum türüne sahip alanlar için bu, alanın içeren türü içindeki uzaklığını 64 bit değer olarak döndürür.
konumMülkiyetKonumu belirten bir konum türü olan alanlar için (örn. "statik"), alanın konumunu konum nesnesi olarak döndürür.
değerMülkiyetBir değeri (örn. "sabit") gösteren konum türüne sahip alanlar için bu, alanın değerini döndürür.

Bu girdilerin tümü 2. aşama başlatma sırasında bulunur.

Temel Sınıf Nesneleri

Bir tür içindeki her temel sınıf, aşağıdaki gibi özelliklere sahip bir temel sınıf nesnesi tarafından açıklanır:

İsim İmza Açıklama
isimMülkiyetTemel sınıfın adını döndürür.
ofset baskıMülkiyetBu temel sınıfın içeren türü içindeki uzaklığını döndürür.
türMülkiyetTemel sınıfın statik türünü temsil eden bir tür nesnesi döndürür.

Bu girdilerin tümü 2. aşama başlatma sırasında bulunur.

Kod Örneği

Kod örneği için bkz. ImageInfo.js betiği. Kod örnekleri hakkında daha fazla bilgi için bkz. JavaScript Hata Ayıklayıcısı Örnek Betikleri.

// 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);

Ayrıca bkz.

JavaScript Uzantılarında Yerel Debugger Nesneleri

JavaScript Uzantılarında Yerel Hata Ayıklayıcı Nesneleri - Tasarım ve Test Konuları

JavaScript Hata Ayıklama Betiği

JavaScript Hata Ayıklayıcısı Örnek Betikleri