Kayıtlar

Hata ayıklayıcı motoru, hedefin yazmaçlarını incelemek ve değiştirmek için kullanılabilir.

Hedefte kullanılabilen yazmaçlar, işlemci mimarisine bağlıdır. x86 işlemci için yazmaçların açıklaması için bkz. İşlemci Mimarisi. İşlemci için mevcut yazmaçların tam açıklaması için ilgili işlemcinin belgelerine bakın.

Yazmaç Kümesi

GetNumberRegisters yöntemi, hedef üzerindeki yazmaç sayısını bulmak için kullanılabilir.

Her yazmaç, indeksi tarafından isimlendirilir. İlk yazmaç dizini sıfır, son yazmaç dizini ise bir eksi kayıt sayısıdır. Adı bilinen bir kaydın dizinini bulmak için GetIndexByName kullanın.

GetDescription yöntemi, yazmaç hakkında bilgileri döndürür. Bu, yazmaç adı, barındırabileceği değerlerin türü ve bir alt yazmaç olup olmadığını içerir.

Alt kayıt, başka bir yazmaç içinde yer alan bir kayıttır. Alt kayıt değiştiğinde, onu içeren kayıt da değişir. Örneğin, x86 işlemcide ax alt kaydı, 32 bit eax yazmaç değerinin düşük 16 biti ile aynıdır.

Aşağıdaki yöntemler kullanılarak değerleri bulunabilecek üç özel kayıt vardır. Bu kayıtların değerlerinin yorumlanması platforma bağlıdır.

Yazmaçlarla Çalışma

Bir yazmaç değeri GetValue yöntemi kullanılarak okunabilir. GetValues ve GetValues2 kullanılarak birden çok yazmaç okunabilir.

SetValue yöntemi kullanılarak bir değer bir yazmaç üzerine yazılabilir. SetValues ve SetValues2 kullanılarak birden çok yazmaç yazılabilir.

Bir yazmaca bir değer yazarken, sağlanan değerin yazmaç türünden farklı bir türü varsa, değer yazmaç türüne dönüştürülür. Bu dönüştürme, CoerceValue yöntemi tarafından gerçekleştirilenle aynıdır. Bu dönüştürme, yazmaç türü sağlanan değeri tutamazsa veri kaybına neden olabilir.

Pseudo-Registers

Sahte yazmaçlar , belirli değerleri barındıran hata ayıklayıcı altyapısı tarafından tutulan değişkenlerdir, örneğin , $teb değeri geçerli iş parçacığının İş Parçacığı Ortam Bloğunun (TEB) adresi olan sahte yazmacın adıdır. Daha fazla bilgi ve sahte yazmaçların listesi için bkz. Pseudo-Register Sözdizimi.

Her sahte yazmaç bir indekse sahiptir. Dizin sıfır ile sahte yazmaç sayısı arasındaki bir sayıdır ( GetNumberPseudoRegisters tarafından döndürülür) eksi bir. Adına göre bir sahte kaydın dizinini bulmak için GetPseudoIndexByName komutunu kullanın. Sahte yazmaçların değerleri GetPseudoValues kullanılarak okunabilir ve değerler SetPseudoValues kullanılarak sahte kayıtlara yazılabilir. Türü de dahil olmak üzere bir sahte yazmaç açıklaması için GetPseudoDescription kullanın.

Not Sahte yazmaçların tümü tüm hata ayıklama oturumlarında veya belirli bir oturumun her anında kullanılamaz.

Yazmaçları Görüntüleme

OutputRegisters ve OutputRegisters2 yöntemleri hedefin kayıtlarını biçimlendirip çıkış olarak istemcilere gönderir.

Etkinlikler

Hedefin yazmaçlarının değerleri her değiştiğinde, motor, Bayraklar parametresi DEBUG_CDS_REGISTERS olarak ayarlanmış şekilde IDebugEventCallbacks::ChangeDebuggeeState geri çağırma yöntemini çağırır.