DLL Projelerinde Hata Ayıklama
Aşağıdaki şablonlar DLL'ler oluşturur:
(C++, C# ve Visual Basic) Sınıf Kitaplığı
(C++, C# ve Visual Basic): Windows Forms Denetim Kitaplığı
Windows Denetim Kitaplığı'nın hatalarının ayıklanması, bir Sınıf Kitaplığı projesinin hatalarının ayıklanmasına benzer.Çoğu durumda, Windows denetimini başka bir projeden çağıracaksınız.Arama projesinde hata ayıkladığınızda, Windows denetiminizin koduna girebilir, kesme noktaları ayarlayabilir ve diğer hata ayıklama işlemlerini gerçekleştirebilirsiniz.Daha fazla bilgi için bkz. Windows Forms Denetimleri.
(C# ve Visual Basic): Web Denetim Kitaplığı
Daha fazla bilgi için bkz. Web Kontrol Kitaplığı (Yönetilen Kod).
(C++): MFC ActiveX Denetimi ve MFC Smart Device ActiveX Denetimi
ActiveX denetimleri, bir istemci bilgisayara Internet üzerinden yüklenebilen ve Web sayfalarında görüntülenip etkinleştirilebilen denetimlerdir.
Bağımsız olarak çalıştırılamadığından, ancak bir HTML Web sayfasına gömülmesi gerektiğinden, ActiveX denetimlerinin hatalarının ayıklanması, diğer denetim türlerinin hatalarının ayıklanmasına benzer.Daha fazla bilgi için bkz. Nasıl Yapılır: ActiveX Denetiminde Hata Ayıklama.
(C++): MFC Smart Device DLL
Daha fazla bilgi için bkz. MFC Hata Ayıklama Teknikleri.
Bu bölüm aşağıdaki konular hakkında bilgiler de içerir:
Bu konu, hata ayıklama sınıf kitaplıklarının hazırlanması hakkında değerlendirmeler sağlayan aşağıdaki bölümleri içerir:
Bir Hata Ayıklama Sürümü Oluşturma
Karma Mod Hata Ayıklama
Varsayılan Yapılandırmaları Değiştirme
DLL Hatalarını Ayıklamanın Yolları
Arama Uygulaması
Web Sayfasındaki denetimler
Komut Penceresi
Bir Hata Ayıklama Sürümü Oluşturma
Hata ayıklamayı nasıl başlatmış olursanız olun, önce DLL'nin Hata ayıklama sürümünün Hata ayıklama sürümünü derlediğinizden emin olun ve Hata ayıklama sürümünün uuygulamanın onu bulmayı beklediği konumda olduğundan emin olun.Bu belirgin görünebilir, ancak bu adımı unutursanız, uygulama farklı bir DLL sürümünü bulup ve yükleyebilir.Program daha sonra çalışmaya devam eder ve kesme noktasına neden hiç isabet edilmediğini düşünürsünüz.Hata ayıklaması yaparken, hata ayıklayıcının Modüller penceresini açarak, programınızın hangi DLL'leri yüklediğini doğrulayabilirsiniz.Modüller penceresi hata ayıkladığınız işlemde yüklü her DLL ya da EXE'yi listeler.Daha fazla bilgi için bkz. Nasıl Yapılır: Modüller Penceresini Kullanma.
Hata ayıklayıcının C++ programında yazılan koda eklenmesi için kod, DebuggableAttribute yaymalıdır./ASSEMBLYDEBUG bağlayıcı seçeneğini kullanarak, bunu kodunuza otomatik olarak ekleyebilirsiniz.
Karma Mod Hata Ayıklama
DLL'nizi çağıran arama uygulaması yönetilen kod veya yerel kodda yazılabilir.Yönetilen DLL'niz yerel kodla adlandırılmışsa ve her ikisinde de hata ayıklamak isterseniz yönetilen ve yerel hata ayıklayıcılarının her ikisi de etkinleştirilmelidir.<Proje>Özellik Sayfaları iletişim kutusunda veya penceresinde bunu seçebilirsiniz.Bunu nasıl yapacağınız, hata ayıklamayı DLL projesinden mi yoksa çağıran uygulama projesinden mi başlattığınıza bağlıdır.Daha fazla bilgi için bkz. Nasıl Yapılır: Karışık Modda Hata Ayıklama.
Varsayılan Yapılandırmaları Değiştirme
Proje şablonuyla bir konsol uygulama projesi oluşturduğunuzda, Visual Studio Hata Ayıklama ve Yayın yapılandırmaları için gereken ayarları otomatik olarak oluşturur.Gerekiyorsa, bu ayarları değiştirebilirsiniz.Daha fazla bilgi için bkz. C++ Hata Ayıklama Yapılandırması Proje Ayarları, C# Hata Ayıklama Yapılandırması Proje Ayarları, Visual Basic Hata Ayıklama Yapılandırması Proje Ayarları ve Nasıl Yapılır: Hata Ayıklama ve Dağıtım Yapılandırmalarını Ayarlama.
DLL Hatalarını Ayıklamanın Yolları
Bu bölümdeki projelerin her biri bir DLL oluşturur.Bir DLL'yi doğrudan çalıştıramazsınız; bir uygulama (genellikle bir EXE) tarafından çağrılmalıdır.Daha fazla bilgi için bkz. Visual C++ Projeleri Oluşturma ve Yönetme.Arama uygulaması aşağıdaki ölçütlerden herhangi birine uyabilir:
Sınıf kitaplığını içeren aynı Visual Studio çözümündeki başka bir projede yerleşik olarak bulunan bir uygulama.
Var olan bir uygulama bir test veya üretim bilgisayarına zaten dağıtılmış.
Web'de bulundu ve bir URL yoluyla erişildi.
DLL'yi gömen bir Web sayfasını içeren bir Web uygulaması.
Çağıran Uygulamanın Hatalarını Ayıklama
Bir DLL'de hata ayıklamak için, genellikle bir EXE veya bir Web uygulaması olan, çağıran uygulamada hata ayıklayarak başlayın.Hata ayıklamanın birkaç yolu vardır.
Çağıran uygulama için bir projeni varsa, bu projeyi açabilir Hata Ayıkla menüsünden yürütmeyi başlatabilirsiniz.Daha fazla bilgi için bkz. <PAVEOVER>Nasıl Yapılır: Yürütmeyi Başlatma.
Çağıran uygulama zaten bir test veya üretim bilgisayarına dağıtılmış var olan bir programsa ve zaten çalışıyorsa buna ekleyebilirsiniz.DLL, Internet Explorer tarafından barındırılan denetimse veya Web sayfasındaki bir denetimse bu yöntemi kullanın.Daha fazla bilgi için bkz. <PAVE OVER> Nasıl Yapılır: Çalışan İşleme Ekleme.
DLL projesinden ayıklayabilirsiniz.Daha fazla bilgi için bkz. Nasıl Yapılır: DLL Projesinde Hata Ayıklama.
Visual Studio Hemen penceresinden ayıklayabilirsiniz.Bu durumda, Hemen penceresi uygulamanın rolünü üstlenir.
Çağıran uygulamanın hatalarını ayıklamaya başlamadan önce genellikle sınıf kitaplığında bir kesme noktası ayarlamak istersiniz.Daha fazla bilgi için bkz. Breakpoints and Tracepoints.Kesme noktasına gelindiğinde, kod içinde gezinerek, sorunu yalıtana kadar her bir satırdaki eylemi gözlemleyebilirsiniz.Daha fazla bilgi için bkz. <PAVEOVER> Kod Adımlamaya Genel Bakış.
Web Sayfasındaki denetimler
Bir Web sayfası denetiminde hata ayıklamak için, böyle bir sayfa önceden yoksa, onu katıştıran bir ASP.NET sayfası oluşturun.Denetim kodunun yanı sıra Web sayfasının koduna da kesme noktaları yerleştirirsiniz.Ardından, Visual Studio öğesinden Web sayfasını çağırırsınız.
Çağıran uygulamanın hatalarını ayıklamaya başlamadan önce genellikle DLL'de bir kesme noktası ayarlamak istersiniz.Kesme noktasına gelindiğinde, kod içinde gezinerek, sorunu yalıtana kadar her bir satırdaki eylemi gözlemleyebilirsiniz.Daha fazla bilgi için bkz. Breakpoints and Tracepoints.
Komut Penceresi
Çağıran uygulama olmadan DLL'de işlevleri veya yöntemleri değerlendirebilirsiniz.Tasarım zamanı hata ayıklama işlemini yapar ve Hemen penceresini kullanırsınız.Bu şekilde hata ayıklamak için, DLL projesi açıkken aşağıdaki adımları izleyin:
Hata Ayıklayıcının Hemen penceresini açın.
Test adlı bir yöntemi Class1 sınıfında test etmek için, aşağıdaki C# kodunu Hemen penceresine yazarak Class1 türünde bir nesne oluşturun.Bu yönetilen kod Visual Basic ve C++ için uygun sözdizimini değişikliklerle birlikte çalışır:
Class1 obj = new Class1();
C# seçeneğinde tüm adlar tam olarak nitelenmiş olmalıdır.Ayrıca, yöntemlerin veya değişkenlerin geçerli kapsamda ve hata ayıklama oturumu bağlamında olması gerekir.
Test'in bir adet int parametresi aldığını varsayarak, Hemen penceresini kullanıp Test'i değerlendirin:
?obj.Test(10)
Sonuç Hemen penceresinde yazdırılır.
İçine bir kesme noktası yerleştirerek ve sonra işlevi yeniden değerlendirerek Test için hata ayıklaması yapmaya devam edebilirsiniz:
?obj.Test(10);
Kesme noktasına isabet edilir ve Test üzerinden geçebilirsiniz.Yürütme Test işleminden ayrıldıktan sonra Hata Ayıklayıcı, Tasarım moduna geri döner.
Ayrıca bkz.
Başvuru
C++ Hata Ayıklama Yapılandırması Proje Ayarları
Kavramlar
C# Hata Ayıklama Yapılandırması Proje Ayarları
Visual Basic Hata Ayıklama Yapılandırması Proje Ayarları
Diğer Kaynaklar
Hata Ayıklama Hazırlığı: Visual C++ Proje Türleri
Hata Ayıklama Hazırlığı: C#, F# ve Visual Basic Proje Türleri