Aracılığıyla paylaş


Hata Ayıklayıcı Programlama Uzantısı API'leri

Bu bölüm şunları içerir:

Hata Ayıklayıcısı Altyapısına Genel Bakış

Hata Ayıklayıcı Altyapısı API'sini Kullanma

DbgEng Uzantılarını Yazma

EngExtCpp Uzantıları

Yazma WdbgExts Uzantıları

DML Kullanarak Hata Ayıklayıcısı Çıkışını Özelleştirmeyi

Hata Ayıklayıcının Özelliklerini Genişletmek için JavaScript Kullanma

KDNET taşıma genişletilebilirlik modülleri geliştirme

Bu belgede WinDbg, KD, CDB ve NTSD'de çalışacak uzantılar yazmak için hata ayıklayıcı altyapısı tarafından sağlanan arabirimler gibi arabirimlerin nasıl kullanılacağı açıklanmaktadır. Bu hata ayıklayıcı uzantıları, kullanıcı modu veya çekirdek modu hata ayıklaması gerçekleştirirken kullanılabilir.

Hata Ayıklayıcısı Altyapısı

Hata ayıklayıcı altyapısı, kullanıcı modunda ve çekirdek modunda hata ayıklama hedeflerini incelemek ve işlemek için bir arabirim sağlar.

Hata ayıklayıcı altyapısı hedefleri alabilir, kesme noktaları ayarlayabilir, olayları izleyebilir, sorgu sembollerini, okuma ve yazma belleğini ve bir hedefteki iş parçacıklarını ve işlemleri denetleyebilir.

Hem hata ayıklayıcı uzantısı kitaplıklarını hem de tek başına uygulamaları yazmak için hata ayıklayıcı altyapısını kullanabilirsiniz. Bu tür uygulamalar hata ayıklayıcı altyapısı uygulamalarıdır. Hata ayıklayıcı altyapısının tüm işlevselliğini kullanan bir hata ayıklayıcı altyapısı uygulaması, birhata ayıklayıcısıdır. Örneğin, WinDbg, CDB, NTSD ve KD hata ayıklayıcılardır; hata ayıklayıcı altyapısı işlevlerinin temelini sağlar.

Hata ayıklayıcı altyapısı API'si dbgeng.h üst bilgi dosyasındaki prototipler tarafından belirtilir.

Daha fazla bilgi için bkz. Hata Ayıklayıcısı Altyapısına Genel Bakış ve Hata Ayıklayıcı Altyapısı API'sini Kullanma .

Uzantıları

Uzantı DLL'sini yazarak ve oluşturarak kendi hata ayıklama komutlarınızı oluşturabilirsiniz. Örneğin, karmaşık bir veri yapısını görüntülemek için bir uzantı komutu yazmak isteyebilirsiniz.

Üç farklı tür hata ayıklayıcı uzantısı DLL'leri vardır:

  • dbgEng uzantısı DLL'lerini . Bunlar dbgeng.h üst bilgi dosyasındaki prototipleri temel alır. Bu tür her DLL, DbgEng uzantısı komutlarını dışarı aktarabilir. Bu uzantı komutları Hata Ayıklayıcı Altyapısı API'sini kullanır ve WdbgExts API'sini de kullanabilir.

    Daha fazla bilgi için bkz. Yazma DbgEng Uzantıları.

  • EngExtCpp uzantı DLL'leri. Bunlar engextcpp.h ve dbgeng.h üst bilgi dosyalarındaki prototipleri temel alır. Bu tür her DLL, DbgEng uzantısı komutlarını dışarı aktarabilir. Bu uzantı komutları hem Hata Ayıklayıcı Altyapısı API'sini hem de EngExtCpp uzantı çerçevesini kullanır ve WdbgExts API'sini de kullanabilir.

  • WdbgExts uzantı DLL'lerini. Bunlar wdbgexts.h üst bilgi dosyasındaki prototipleri temel alır. Bu tür her DLL bir veya daha fazla WdbgExts uzantısı komutlarını dışarı aktarır. Bu uzantı komutları yalnızca WdbgExts API'sini kullanır. Daha fazla bilgi için bkz. Yazma WdbgExts Uzantıları.

DbgEng API'sini kullanarak uzantılar veya tek başına uygulamalar oluşturabilirsiniz. WdbgExts API'si, hata ayıklayıcı altyapısı API'sinin işlevselliğinin bir alt kümesini içerir ve yalnızca uzantılar tarafından kullanılabilir.

Tüm hata ayıklayıcı uzantıları Visual Studio kullanılarak derlenmeli ve derlenmelidir.

Uzantı kodu örnekleri, özel bir yükleme gerçekleştirir ve SDK bileşenini ve tüm alt bileşenlerini seçerseniz Windows için Hata Ayıklama Araçları paketinin bir parçası olarak yüklenir. Bunlar, Windows için Hata Ayıklama Araçları yükleme dizininin sdk\samples alt dizininde bulunabilir.

Yeni hata ayıklayıcı uzantıları yazmanın en kolay yolu örnek uzantıları incelemektir. Her örnek uzantı, Derleme yardımcı programıyla kullanılacak makefile ve kaynak dosyalarını içerir. Her iki uzantı türü de örneklerde gösterilir.

Özel Çözümleme Hata Ayıklayıcısı Uzantıları Yazma

Bir çözümleme uzantısı eklentisi yazarak !analyze hata ayıklayıcısı komutunun özelliklerini genişletebilirsiniz. Bir analiz uzantısı eklentisi sağlayarak, bir hata denetiminin veya özel durumun analizine kendi bileşeninize veya uygulamanıza özgü bir şekilde katılabilirsiniz. Bir analiz uzantısı eklentisi yazarken, eklentinizin çağrılmasını istediğiniz durumları açıklayan bir meta veri dosyası da yazarsınız. !analyze çalıştırıldığında uygun analiz uzantısı eklentilerini bulur, yükler ve çalıştırır. Daha fazla bilgi için bkz. Özel Çözümleme Hata Ayıklayıcısı Uzantıları Yazma

DML Kullanarak Hata Ayıklayıcısı Çıkışını Özelleştirmeyi

DML kullanarak hata ayıklayıcısı çıkışını özelleştirebilirsiniz. Daha fazla bilgi için bkz. DML kullanarak Hata Ayıklayıcısı Çıkışını Özelleştirme.

Hata Ayıklayıcının Özelliklerini Genişletmek için JavaScript Kullanma

Hata ayıklayıcı nesnelerini anlayan ve hata ayıklayıcının özelliklerini genişletip özelleştiren betikler oluşturmak için JavaScript kullanın. JavaScript sağlayıcıları bir betik dilini hata ayıklayıcının iç nesne modeliyle bir araya getirir. JavaScript hata ayıklayıcısı betik sağlayıcısı, hata ayıklayıcı ile JavaScript kullanımına izin verir. Daha fazla bilgi için bkz. JavaScript Hata Ayıklayıcısı Betiği oluşturma.

KDNET taşıma genişletilebilirlik modülleri geliştirme

KDNET aktarımı, ayrı bir donanım sürücüsü genişletilebilirlik modülü dll'si kullanarak herhangi bir donanımda çalışacak şekilde genişletilebilir. KDNET aktarım genişletilebilirlik modülleri, belirli ağ kartlarına çekirdek hata ayıklama desteği eklemek için ağ kartı satıcıları tarafından geliştirilmiştir.

KDNET, ağ üzerinden pencerelerin çekirdek hata ayıklamasını sağlayan bir çekirdek hata ayıklama aktarımıdır. Donanım destek katmanının ağ paketi işleme ve çekirdek arabirimi katmanından ayrı bir modülde yerleşik olarak yer alacağız şekilde tasarlanmıştır. Bu donanım sürücüsü destek katmanına KDNET genişletilebilirlik modülü adı verilir. Daha fazla bilgi için bkz. KDNET taşıma genişletilebilirlik modülleri geliştirme.