Aracılığıyla paylaş


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:

  1. Hata Ayıklayıcının Hemen penceresini açın.

  2. 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.

  3. 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.

  4. İç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ı

Hata Ayıklama Güvenliği

Diğer Kaynaklar

Yönetilen Kodda Hata Ayıklama

Hata Ayıklama Hazırlığı: Visual C++ Proje Türleri

Hata Ayıklama Hazırlığı: C#, F# ve Visual Basic Proje Türleri