Jak trasování a ladění Visual Basic 2005 nebo Visual Basic .NET

Překlady článku Překlady článku
ID článku: 313417 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual Basic 6.0 verzi tohoto článku naleznete 161153.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek demonstruje použití ladění a trasování třídy. Tyto třídy jsou k dispozici v aplikaci Microsoft .NET Framework. Tyto třídy můžete poskytnout informace o výkonu aplikací během vývoje aplikací nebo po zavedení do výroby. Tyto třídy jsou pouze jedna část funkce vybavení, které jsou k dispozici v rozhraní .NET Framework.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace Service Pack:
  • Systém Microsoft Windows 2000 nebo Microsoft Windows XP
  • Microsoft Visual Basic 2005 nebo Microsoft Visual Basic .NET
Tento článek také předpokládá, že jste obeznámeni s ladění programů.

Popis technika

Kroky v části "Vytvoření vzorku s třídou Debug" ukazují, jak vytvořit aplikace konzoly, která používá třída Debug poskytnout informace o spuštění programu.

Při spuštění programu můžete použít metody třídy Debug vyrobit zprávy pomoci sledovat, rozpoznat selhání nebo poskytují informace o měření výkonu. Ve výchozím nastavení zprávy vypočítávající třídy Debug zobrazí v okně výstup z Microsoft Visual Studio integrované vývojové prostředí (IDE).

Ukázkový kód používá metodu WriteLine k výrobě zpráva následovaný zakončení řádku. Při použití této metody k výrobě zprávu každé zprávy se zobrazí na samostatném řádku v okně výstup.

Pokud použijete metodu Assert třídy ladění, okno výstup zobrazí zprávu, pouze pokud zadaná podmínka vyhodnocen jako false. Zpráva se zobrazí v modálním dialogovým oknem uživateli. Dialogové okno obsahuje zprávy, název projektu a číslo výpisu Debug.Assert. Dialogové okno také obsahuje tři příkazová tlačítka:
  • Přerušit: the přestane aplikace spuštěna.
  • Opakovat: aplikace zadá režimu ladění.
  • Ignorovat: aplikace pokračuje.
Uživatel musí před aplikace pokračovat klepnutím jedno z těchto tlačítek.

Můžete se také přímé výstup z třídy Debug cílů než okno výstup. Třída ladění má kolekce s názvem listenery zahrnuje Listener objekty. Každý objekt Listener sleduje Debug výstup a přesměruje výstup do zadaného cíle. V kolekci listenery každý Listener obdrží výstup, který generuje třídy ladění. Slouží k definování objektů naslouchání třídy TextWriterTraceListener. Můžete určit cílové třídy TextWriterTraceListener prostřednictvím jeho konstruktor. Některé možné výstup cílů patří:
  • Okno Konzola pomocí vlastnost System.Console.Out
  • Text (TXT) soubor pomocí příkazu System.IO.File.CreateText("FileName.txt")).
Po vytvoření objektu TextWriterTraceListener musíte přidat objekt do kolekce Debug.Listeners přijímat Debug výstup.

Vytvořit vzorek s třídou ladění

  1. Slouží k vytvoření nového projektu aplikace konzoly s názvem conInfo Visual Basic 2005 nebo Visual Basic .NET. Veřejné modul s názvem Module1 je ve výchozím nastavení přidán do projektu.
  2. Inicializovat proměnné obsahují informace o produktu, přidat Dim následující příkazy:
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. Jako první vstupní parametr metody WriteLine zadat zprávu vypočítávající třídy. Stiskněte kombinaci kláves CTRL + ALT + O zajistit okno výstup je zobrazen.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. Čitelnost, použijte metodu Odsazení odsazení dalších zpráv v okně výstup:
    Debug.Indent()
    					
  5. K zobrazení obsahu vybrané proměnné, použijte metodu WriteLine následujícím způsobem:
    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. Metoda WriteLine můžete také zobrazit obor názvů a název třídy pro existující objekt. Například následující kód v okně výstup zobrazí obor názvů System.Xml.XmlDocument:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. Uspořádání výstup, můžete zahrnout kategorii jako volitelný druhý vstupní parametr metody WriteLine. Pokud určíte kategorie formát výstupní okno zprávy je "kategorie: zpráva." První řádek následující kód například zobrazí "pole: název produktu je pomůcku" v výstupní okno:
    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. Okno Výstup můžete zobrazovat zprávy, pouze pokud určené podmínka vyhodnocen na hodnotu true pomocí metody WriteLineIf třídy ladění. Podmínka být vyhodnocen je první vstupní parametr metody WriteLineIf. Zpráva se zobrazí pouze pokud je podmínka v první parametr vyhodnocen jako true je druhý parametr WriteLineIf.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. Použít metodu Assert třídy ladění, takže okno výstup zobrazí zprávu, pouze pokud zadaná podmínka vyhodnocen jako false:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. Vytvořit objekty TextWriterTraceListener okno Konzola (tr1) a textový soubor s názvem Output.txt (tr2) a každý objekt přidat do kolekce Listenery Debug:
    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. Metodu Unindent čitelnost, lze použít k odebrání odsazení u dalších zpráv generuje třídy ladění. Při použití Odsazení a metod Unindent společně, mohou čtenáře rozlišit výstup jako skupina.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. Aby každý objekt Listener obdrží všechny jeho výstup volání metody Flush pro vyrovnávací paměti třídy Debug:
    Debug.Flush()
    					

Pomocí třídy trasování

Můžete také použít třídy trasování k výrobě zprávy monitoru spuštění aplikace. Třídy ladění a trasování sdílet většinu stejné metody vytvořit výstup, včetně:
  • WriteLine
  • WriteLineIf
  • Odsazení
  • Unindent
  • Vyhodnocení
  • Vyprázdnění
Můžete použít Sledování a ladění tříd samostatně nebo společně ve stejné aplikaci. V projektu řešení konfigurace Debug trasování a ladění výstupu jsou aktivní. Projekt generuje výstup z obou těchto tříd všechny objekty Listener. Konfigurace řešení Release projektu však generuje pouze výstup z třídy trasování. Konfigurace řešení Release projektu ignoruje všechny vyvolání ladění metodu třídy.
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()
				

Ověřte, zda funguje

  1. Přesvědčte se, zda Debug aktuální konfiguraci řešení.
  2. Pokud okno Průzkumníka řešení není zobrazen, stiskněte kombinaci kláves CTRL + ALT + L k zobrazení tohoto okna.
  3. ConInfo klepněte pravým tlačítkem myši a potom klepněte na příkaz Vlastnosti.
  4. V levém podokně stránky vlastnost conInfo ve složce Konfigurace Ujistěte se, odkazuje na šipku ladění.
  5. Nad složky konfigurace v poli rozevíracího seznamu Konfiguraceaktivní (ladění) nebo Debug klepněte a potom klepněte na tlačítko OK.
  6. Stiskněte klávesy CTRL + ALT + O zobrazit okno výstup.
  7. Stisknutím klávesy F5 spustit kód. Jakmile se zobrazí dialogové okno Předpokladu selhala, klepněte na tlačítko Přeskočit.
  8. V okně konzoly stiskněte klávesu ENTER. Program by měl dokončení a okno výstup by měl zobrazit následující výstup:
    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. Okno Konzola a souboru Output.txt by měl zobrazit následující výstup:
    (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
    						

Úplný výpis kódu

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
				

Odstraňování potíží

  • Pokud je typ konfigurace řešení Release, třída výstupu ladění ignorována.
  • Po vytvoření třídy TextWriterTraceListener pro konkrétní cíl obdrží TextWriterTraceListener výstup trasování a ladění tříd. K tomu dochází bez ohledu na to, zda použít metodu Add třídy Debugtrasování nebo přidat TextWriterTraceListener třídy listenery.
  • Pokud přidáte objekt Listener pro stejný cíl v trasování a ladění třídy je každý řádek výstupu duplicitní, bez ohledu na to, zda Debug nebo trasování generuje výstup.
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
    Dim tr2 As New TextWriterTraceListener(System.Console.Out)
    Trace.Listeners.Add(tr2)
    					

Odkazy

Další informace naleznete v dokumentaci knihovny tříd .NET Framework následující témata:
Třída trasování
http://msdn2.microsoft.com/en-us/library/system.diagnostics.trace(vs.71).aspx

Ladění tříd
http://msdn2.microsoft.com/en-us/library/system.diagnostics.debug(vs.71).aspx


Jak Jsem nástrojů malá aplikace pomocí trasování? http://samples.gotdotnet.com/quickstart/howto/doc/TraceDemo.aspx

Vlastnosti

ID článku: 313417 - Poslední aktualizace: 1. června 2007 - Revize: 3.7
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbmt kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster KB313417 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:313417

Dejte nám zpětnou vazbu

 

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