Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Visual Basic 2005 veya Visual Basic .NET'de izleme ve hata ayıklama

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 313417
Bu makalenin Microsoft Visual Basic 6.0 sürümü için bkz. 161153.
Özet
Bu makalede, hata ayıklama ve İzleme sınıflarının nasıl kullanılacağını gösterir. Bu sınıflar, Microsoft .NET Framework içinde kullanılabilir. Uygulama geliştirme sırasında veya sonrasında üretim dağıtımına bir uygulama performansı hakkında bilgi sağlamak için bu sınıfları kullanırsınız. Bu sınıflar, .NET Framework'te bulunan araçları özellikleri yalnızca bir parçasıdır.

Gereksinimleri

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

Tekniğin açıklaması

"Örnek bir hata ayıklama sınıfı ile oluşturma" bölümündeki adımları program yürütme hakkında bilgi sağlamak için hata ayıklama sınıfı kullanan bir konsol uygulamasının nasıl yaratılacağını göstermektedir.

Program çalýþýnca izlemek için arızaları veya performans ölçüm bilgilerini sağlamak için Yardım iletileri üretmek için hata ayıklama sınıfının yöntemlerini kullanabilirsiniz. Varsayılan olarak, hata ayıklama sınıfı üreten iletileri, Microsoft Visual Studio tümleşik geliştirme ortamı (IDE) çıktı penceresinde görünür.

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

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

Ayrıca hata ayıklama sınıfı çıktısını Output penceresi dışındaki hedeflere yönlendirebilirsiniz. Hata ayıklama sınıfı dinleyici nesnelerini içeren dinleyicileri adlı bir koleksiyon vardır. Her bir dinleyici nesnesi hata ayıklama çıktı izler ve belirli bir hedefi için çıkış yönlendirir. Dinleyicileri koleksiyonundaki her dinleyicisihata ayıklama sınıfı oluşturur herhangi bir çıktı alır. Dinleyici nesnelerini 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 yoluyla belirtebilirsiniz. Bazı olası çıktı hedefleri şunlardır:
  • System.Console.Out özelliğini kullanarak konsol penceresini açın.
  • System.IO.File.CreateText("FileName.txt")) deyimi kullanarak bir metin (.txt) dosyası.
Olmalıdır nesnesi oluşturduktan sonra nesnenin hata ayıklama çıktısını almak için Debug.Listeners koleksiyonuna eklemeniz gerekir.

Örnek bir hata ayıklama sınıfı ile oluşturma

  1. ConInfo adlı yeni bir konsol uygulama projesi oluşturmak için Visual Basic 2005 veya Visual Basic .NET kullanın. Module1 adlı ortak bir modül için proje karakterlerini girerseniz eklenir.
  2. Aproduct hakkında bilgi içerecek şekilde değişkenlerini başlatmak için aşağıdaki Dim ifadeleri ekleyin:
    Dim sProdName As String = "Widget"Dim iUnitQty As Integer = 100Dim dUnitCost As Decimal = 1.03					
  3. WriteLine yöntemi firstinput parametresi olarak sınıf üreten iletiyi belirtin. Bu Output penceresinde göründüğünden emin olmak için CTRL + ALT + O tuş bileşimine basın.
    Debug.WriteLine("Debug Information-Product Starting ")					
  4. Okunabilirlik için Girinti yöntemi çıktı penceresinde sonraki iletileri girintilemek için 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, isim uzayı ve sınıf adı anexistent nesne için görüntülemek için de kullanabilirsiniz. Örneğin, aşağıdaki kod çıktı penceresinde System.Xml.XmlDocument ad boşluğunu görüntüler:
    Dim oxml As New System.Xml.XmlDocument()Debug.WriteLine(oxml)					
  7. Çıkış düzenlemek için dahil edebilirsiniz bir kategori olarak Time.TZ, WriteLine yönteminin ikinci giriş parametresi. Kategori belirtirseniz, Outputwindow ileti biçimi olan "Kategori: ileti." Örneğin, aşağıdaki ilk satırı kodu görüntüler "alan: Ürün adı pencere öğesi olan" Outputwindow içinde:
    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 hata ayıklama sınıfının WriteLineIf yöntemi kullanılarak bir designatedcondition doğru olarak değerlendirilirse, iletileri görüntüleyebilirsiniz. Değerlendirilmek üzere ilk giriş parameterof WriteLineIf yöntemi bir durumdur. WriteLineIf ' in ikinci parametresi firstparameter koşul doğru olarak değerlendirilirse görüntülenen bir iletidir.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")					
  9. Hata ayıklama sınıfı yöntemine çağrıdan kullanabilir, böylece yalnızca belirlenen koşul yanlış olarak değerlendirilirse Output penceresi iletiyi görüntüler:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")Debug.Assert(dUnitCost < 1, "Message will appear")					
  10. Bir metin dosyası namedOutput.txt (tr2) ve konsol penceresi (tr1) için olmalıdır nesneleri oluşturmak ve Hata ayıklama dinleyicileri koleksiyonu her nesne 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 Unindent yöntemini,hata ayıklama sınıfı oluşturur, izleyen iletiler için Girintiyi kaldırmak için kullanın. Okuyucu Girinti ve Unindent yöntemleri kullandığınızda, çıktı grubu olarak ayırabilirsiniz.
    Debug.Unindent()Debug.WriteLine("Debug Information-Product Ending")					
  12. Her dinleyici nesnesi çıktı hepsini almasını sağlamak için hata ayıklama sınıfı arabellekleri için reçeteye göre sarf yöntemini çağırın:
    Debug.Flush()					

İzleme sınıfını kullanma

De İzleme sınıfı iletilerinizi üretmeye izleyen bir uygulamanın yürütme kullanabilirsiniz. Çıktıyı üretmek için aynı yöntemleri çoğu İzleme ve hata ayıklama sınıfları paylaşma da dahil olmak üzere:
  • WriteLine
  • WriteLineIf
  • Girinti
  • Girintisini Kaldır
  • Onaylama işlemi
  • Temizleme
İzleme ve hata ayıklama sınıfları ayrı ayrı veya birlikte aynı uygulama içinde kullanabilirsiniz. İzleme ve hata ayıklama çıktı bir hata ayıklama çözüm yapýlandýrmasý projesinde etkindir. Proje çıktı bu iki sınıf tüm dinleyici nesnelere oluşturur. Ancak, bir daðýtým projesi yalnızca İzleme sınıfından bir çıktı üretir. Daðýtým çözüm yapýlandýrmasýný projenin hata ayıklama sınıfı yöntemi çağırmaları 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()				

Düzgün ç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ünür değilse, theCTRL + bu pencereyi görüntülemek için ALT + L tuş bileşimine basın.
  3. ConInfosağ tıklatın ve sonra Özellikler' i tıklatın.
  4. ConInfo özellik sayfasının theConfiguration klasörü altında sol bölmede oku hata ayıklamaiçin işaret ettiğinden emin olun.
  5. Konfigürasyon klasöründe yapılandırma aşağı açılan liste kutusunda, yukarıdaki Etkin (hata ayıklama) veya Hata Ayıkla' yı tıklatın ve sonra Tamam' ı tıklatın.
  6. Çıktı penceresini görüntülemek için CTRL + ALT + S tuşlarına basın.
  7. Kodu çalıştırmak için F5 tuşuna basın. Onaylama işlemi başarısız iletişim kutusu göründüğünde, Yoksay' ı tıklatın.
  8. Konsol penceresinde ENTER tuşuna basın. Program shouldfinish ve Output penceresi aşağıdaki çıktı 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.03Debug Information-Product EndingTrace Information-Product Starting     The product name is Widget    Field: The product name is Widget    This message WILL appearTrace Information-Product Ending						
  9. Konsol penceresi ve çıktı.txt dosyasına aşağıdaki çıktıyı görüntülemek gerekir:
    (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.03Debug Information-Product EndingTrace Information-Product Starting     The product name is Widget    Field: The product name is Widget    This message WILL appearTrace 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 SubEnd Module				

Sorun giderme

  • Çözüm yapılandırma türü yayınise, hata ayıklama sınıfı çıkış göz ardı edilir.
  • 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 olup olmadığını, İzleme veya hata ayıklama sınıfı Add yöntemi olmalıdırdinleyicileri sınıfına eklemek için kullandığınız bağımsız olarak gerçekleşir.
  • İzleme ve hata ayıklama sınıfı aynı hedef için bir dinleyici nesnesi eklerseniz, her satır çıktı oluphata ayıklama veya İzleme çıktısını oluşturur ne olursa olsun yineleniyor.
    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 .NET Framework sınıf kitaplığı belgelerinde aşağıdaki konulara bakın:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 313417 - Son İnceleme: 01/03/2015 22:28:00 - Düzeltme: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMttr
Geri bildirim
lay:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">