Nasıl izleme ve hata ayıklama Visual Basic 2005 veya Visual Basic.NET

Makale çevirileri Makale çevirileri
Makale numarası: 313417 - Bu makalenin geçerli olduğu ürünleri görün.
Bu, bir Microsoft Visual Basic 6.0 sürümü için makalesi için bkz: 161153.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, hata ayıklama ve İzleme sınıfları nasıl kullanılacağı gösterilmektedir. Microsoft, bu sınıfların kullanılabilir.NET Framework. Bu sınıflar kullanma hakkında bilgi sağlar. uygulama geliştirme sırasında veya sonrasında bir uygulamanın performans Üretim dağıtımı. Bu sınıflar yalnızca bir parçası olan kullanılabilir araçları özellikleri.NET Framework.

Gereksinimleri

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri:
  • Microsoft Windows 2000 veya Microsoft Windows xp
  • Microsoft Visual Basic 2005 veya Microsoft Visual Basic.NET
Bu makalede ayrıca, programla bildiğinizi varsayar hata ayıklama.

Tekniğin açıklaması

"Debug sınıf örneği oluşturma" bölümündeki adımları konsol nasıl oluturulduunu gösterir. program hakkında bilgi sağlamak için hata ayıklama sınıfını kullanan uygulama Yürütme.

Program çal???nca algılamak için izlemek için Yardım iletileri üretmek için hata ayıklama sınıfının yöntemlerini kullanabilirsiniz işlev bozuklukları, performans ölçüm bilgileri sağlamak için veya. Varsayılan olarak, hata ayıklama sınıf üreten iletileri Microsoft Visual Studio Output penceresinde görünür. Tümleşik geliştirme ortamı (IDE).

Örnek kod satırı tarafından izlenen bir ileti oluşturmak için WriteLine yöntemi kullanır. Sonlandırıcı. Bir ileti oluşturmak için bu yöntemi kullandığınızda, her ileti görüntülenir. ayrı bir satıra Output penceresinde.

Hata ayıklama sınıfının Assert yöntemini kullanırsanız, Output penceresi bir ileti yalnızca belirtilen görüntüler koşul yanlış. İleti de kalıcı bir iletişim kutusu görüntülenir Kullanıcı. İletişim kutusu iletisi, proje adı ve Debug.Assert Ekstre numarasını içerir. İletişim kutusu üç komut da içerir. düğmeler:
  • İptal: çalışan uygulama durdurulur.
  • Yeniden deneme: uygulama hata ayıklama moduna girer.
  • Yoksay: uygulama devam eder.
Kullanıcı uygulamayı önce bu düğmelerden birini tıklatmanız gerekir devam edebilirsiniz.

Ayrıca, hata ayıklama sınıftan çıktı Output penceresi dışındaki hedeflere yönlendirebilirsiniz. Hata ayıklama sınıf dinleyicileridinleyici nesnelerini içeren adlı bir koleksiyon vardır. Her dinleyici nesnesi, hata ayıklama çıktısı izler ve çıktı belirtilen hedefe yönlendirir. Dinleyicileri koleksiyonundaki her dinleyiciDebug sınıfı oluşturan çıktı alır. Dinleyici nesneleri tanımlamak için olmalıdır sınıfını kullanın. Hedef olmalıdır sınıfının yapıcısına aracılığıyla belirtebilirsiniz. Bazı olası çıktı hedefleri şunları içerir:
  • System.Console.Out özelliği kullanılarak konsol penceresini açın.
  • System.IO.File.CreateText("FileName.txt")) deyimini kullanarak bir metin (.txt) dosyası.
Olmalıdır nesnesi oluşturduktan sonra nesne hata ayıklama çıktısı almak için Debug.Listeners koleksiyonuna eklemeniz gerekir.

Hata ayıklama sınıf örneği oluşturma

  1. Visual Basic 2005 veya Visual Basic kullanın.ConInfo adlı yeni bir konsol uygulaması projesi net. Module1 adlı ortak bir modül tarafından projeye eklenir Varsayılan değer.
  2. Hakkında bilgi içerecek şekilde değişkenlerini başlatmak için bir Ürün, Dim aşağıdaki ifadeleri ekleyin:
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. İlk, sınıf üreten iletiyi belirtin WriteLine yönteminin giriş parametresi. Emin olmak için ctrl + alt + o tuş bileşimine basın Output penceresi görünür.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. Okunabilirlik için Output penceresinde sonraki iletileri girintilemek için girinti yöntemini kullanın:
    Debug.Indent()
    					
  5. Seçili değişkenlerinin içeriğini görüntülemek için WriteLine yöntemi aşağıdaki gibi kullanın:
    Debug.WriteLine("The product name is " & sProdName)
    Debug.WriteLine("The available units on hand are " & iUnitQty)
    Debug.WriteLine("The per unit cost is " & dUnitCost)
    					
  6. WriteLine yöntemi ad ve sınıf adını görüntülemek için de kullanılabilir bir Varolan bir nesne. Örneğin, aşağıdaki kod System.Xml.XmlDocument ad Output penceresinde görüntüler:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. Çıktı düzenlemek için bir kategori olarak ekleyebilirsiniz bir İsteğe bağlı, WriteLine yönteminin ikinci giriş parametresi. Kategori çıktı biçimi belirtirseniz İleti penceresi "kategori: ileti." Örneğin, ilk satır Aşağıdaki kodu görüntüler "alan: ürün adı pencere öğesi olan" çıktı pencere:
    Debug.WriteLine("The product name is " & sProdName, "Field")
    Debug.WriteLine("The units on hand are " & iUnitQty, "Field")
    Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")
    Debug.WriteLine("Total Cost is" & iUnitQty * dUnitCost, "Calc")
    					
  8. Output penceresi, yalnızca bir atanmış iletileri görüntüleyebilirsiniz koşul, hata ayıklama sınıfının WriteLineIf yöntemi kullanarak true de?erini verir. Koşul değerlendirilecek ilk giriş parametresidir WriteLineIf yöntemi. Yalnızca görünen ileti WriteLineIf , ikinci parametre ise ilk koşul Parametre true de?erini verir.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. Hata ayıklama sınıfının Assert yöntemini kullanabilir, böylece ileti yalnızca IF Output penceresinde görüntüler bir koşul yanlış:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. Konsol penceresi (tr1) ve adlı bir metin dosyası olmalıdır nesneleri oluşturma Çıktı.txt (tr2) ve Hata ayıklama dinleyicileri koleksiyonu her nesneyi ekleyin:
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
            
    Dim tr2 As New _
      TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))
    Debug.Listeners.Add(tr2)
    					
  11. Okunabilirlik için sonraki iletileri için Girintiyi kaldırmak için Unindent yöntemini kullanın. Hata ayıklama sınıfı oluşturur. Girinti ve Unindent yöntemleri kullandığınızda, okuyucu çıktı grup olarak ayırabilirsiniz.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. Her dinleyici nesnesi tüm çıktısının almasını sağlamak için hata ayıklama sınıf arabellekleri için Temizleme yöntemi çağrısı:
    Debug.Flush()
    					

İzleme sınıfını kullanma

İzleme sınıfı yürütülmesini izleme iletileri oluşturmak için de kullanılabilir bir uygulama. İzleme ve hata ayıklama sınıfları çıktı oluşturmak için aynı yöntemleri çoğu paylaşmak, dahil olmak üzere:
  • WriteLine
  • WriteLineIf
  • Girinti
  • Girintisini Kaldır
  • Onaylama işlemi
  • Temizleme
İzleme ve hata ayıklama sınıfların ayrı ayrı veya birlikte aynı uygulamada kullanabilirsiniz. İçinde bir Çözüm yap?land?rmas? projenin hatalar?n? etkin İzleme ve hata ayıklama çıktı. Proje hem çıktı oluşturur Bu sınıflar tüm dinleyici nesnelere. Ancak, yayın çözüm yap?land?rmas? proje yalnızca İzleme sınıfından bir çıktı üretir. Hata ayıklama sınıf yöntemi çağırmaları da??t?m çözüm yap?land?rmas?n? proje yoksayar.
Trace.WriteLine("Trace Information-Product Starting ")

Trace.Indent()

Trace.WriteLine("The product name is " & sProdName)
Trace.WriteLine("The product name is " & sProdName, "Field")
Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")
Trace.Assert(dUnitCost > 1, "Message will NOT appear")

Trace.Unindent()
Trace.WriteLine("Trace Information-Product Ending")
Trace.Flush()
Console.ReadLine()
				

Doğru çalıştığını doğrulayın.

  1. Hata ayıklama geçerli çözüm yap?land?rmas? olduğundan emin olun.
  2. Solution Explorer penceresi görünmüyorsa, basın Bu pencereyi görüntülemek için tuş bileşimi ctrl + alt + l.
  3. ConInfosağ tıklatın ve sonra Özellikler' i tıklatın.
  4. ConInfo özellik sayfasının sol bölmesinde altında Yapılandırma klasörü oku hata ayıklamaiçin işaret ettiğinden emin olun.
  5. Konfigürasyon klasöründe yapılandırma açılır liste kutusunun üstündeki etkin (hata ayıklama) veya hata ayıklamatıklatın ve sonra Tamam' ı tıklatın.
  6. Output penceresini görüntülemek için ctrl + alt + o tuşlarına basın.
  7. Kod çalıştırmak için F5 tuşuna basın. Onaylama işlemi başarısız iletişim kutusu görüntülendiğinde Yoksay' ı tıklatın.
  8. Konsol penceresinde enter tuşuna basın. Program gerekir. bitirme ve Output penceresi aşağıdaki çıkış görüntülenir:
    Debug Information-Product Starting 
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
        System.Xml.XmlDocument
        Field: The product name is Widget
        Field: The units on hand are 100
        Field: The per unit cost is 1.03
        Calc: Total cost is 103
        This message WILL appear
        ---- DEBUG ASSERTION FAILED ----
    ---- Assert Short Message ----
    Message will appear
    ---- Assert Long Message ----
    
        at Module1.Main()  C:\Documents and Settings\Administrator\My 
        Documents\Visual Studio Projects\conInfo\Module1.vb(29)
    
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						
  9. Konsol penceresi ve çıktı.txt dosyasına görüntüleme aşağıdaki çıkış:
    (The Output.txt file is located in the same directory as the conInfo 
    executable, conInfo.exe. Normally this is the \bin folder of where the 
    project source has been stored. By default that would be C:\Documents and 
    Settings\User login\My Documents\Visual Studio Projects\conInfo\bin)
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						

Tam kod listesi

Module Module1
    Sub Main()
        Dim sProdName As String = "Widget"
        Dim iUnitQty As Integer = 100
        Dim dUnitCost As Decimal = 1.03

        Debug.WriteLine("Debug Information-Product Starting ")
        Debug.Indent()

        Debug.WriteLine("The product name is " & sProdName)
        Debug.WriteLine("The available units on hand are " & iUnitQty)
        Debug.WriteLine("The per unit cost is " & dUnitCost)

        Dim oxml As New System.Xml.XmlDocument()
        Debug.WriteLine(oxml)

        Debug.WriteLine("The product name is " & sProdName, "Field")
        Debug.WriteLine("The units on hand are " & iUnitQty, "Field")
        Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")
        Debug.WriteLine("Total cost is " & iUnitQty * dUnitCost, "Calc")

        Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
        Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")

        Debug.Assert(dUnitCost > 1, "Message will NOT appear")
        Debug.Assert(dUnitCost < 1, "Message will appear")

        Dim tr1 As New TextWriterTraceListener(System.Console.Out)
        Debug.Listeners.Add(tr1)

        Dim tr2 As New _
          TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))
        
        Debug.Listeners.Add(tr2)

        Debug.WriteLine("The product name is " & sProdName)
        Debug.WriteLine("The available units on hand are " & iUnitQty)
        Debug.WriteLine("The per unit cost is " & dUnitCost)

        Debug.Unindent()
        Debug.WriteLine("Debug Information-Product Ending")

        Debug.Flush()

        Trace.WriteLine("Trace Information-Product Starting ")

        Trace.Indent()

        Trace.WriteLine("The product name is " & sProdName)
        Trace.WriteLine("The product name is " & sProdName, "Field")
        Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")
        Trace.Assert(dUnitCost > 1, "Message will NOT appear")

        Trace.Unindent()
        Trace.WriteLine("Trace Information-Product Ending")

        Trace.Flush()

        Console.ReadLine()

    End Sub
End Module
				

Sorun giderme

  • Çözüm yapılandırma türü yayın, hata ayıklama sınıf çıktı sayılır.
  • Belirli bir hedef için olmalıdır sınıfı oluşturduktan sonra İzleme ve hata ayıklama sınıfları olmalıdır çıktı alır. Bu, İzleme veya hata ayıklama sınıf yönteminiolmalıdırdinleyicileri sınıfa eklemek için kullanıp bakılmaksızın gerçekleşir.
  • İzleme ve hata ayıklama sınıfları aynı hedef için bir dinleyici nesnesi eklerseniz, her çıktı satırının, kullanılıp bakılmaksızın yineleniyor Hata ayıklama veya İzleme çıktısını oluşturur.
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
    Dim tr2 As New TextWriterTraceListener(System.Console.Out)
    Trace.Listeners.Add(tr2)
    					

Referanslar

Daha fazla bilgi için aşağıdaki konulara bakın. .net Framework sınıf kitaplığı belgeler:
Sınıf izleme
http://msdn2.microsoft.com/en-us/library/System.Diagnostics.trace (vs.71) .aspx

Sınıf hata ayıklama
http://msdn2.microsoft.com/en-us/library/System.Diagnostics.Debug (vs.71) .aspx


Küçük bir uygulama izleme nasıl gereç?


http://ASP.dotnetheaven.com/howto/doc/TraceDemo.aspx
veya

http://quickstart.developerfusion.co.uk/QuickStart/howto/doc/TraceDemo.aspx

Özellikler

Makale numarası: 313417 - Last Review: 7 Mayıs 2012 Pazartesi - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:313417

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com