Způsob sledování a ladění skriptu v jazyce Visual C#

Překlady článku Překlady článku
ID článku: 815788 - Produkty, které se vztahují k tomuto článku.
Pro Microsoft Visual Basic.NET verze tohoto článek naleznete v tématu 313417 .
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, jak použít Ladění a Trasování třídy. Tyto třídy jsou k dispozici ve společnosti Microsoft.NET Rámec. Můžete poskytnout informace o těchto tříd výkon aplikace během vývoje aplikace nebo po zavedení do výroby. Tyto třídy jsou pouze jedna část funkce služby WMI, které jsou k dispozici v.Rozhraní .NET Framework.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťové infrastruktury a aktualizace service Pack, které potřebujete:
  • Microsoft Windows 2000 nebo Microsoft Windows XP nebo Microsoft Windows Server 2003
  • Microsoft Visual C#
Tento článek také předpokládá, že jste obeznámeni s programem ladění.

Popis techniky


Kroky Vytvoření Vzorek s třídou ladění části ukazují, jak vytvořit aplikace, která používá konzola Ladění Třída poskytovat informace o provádění programu.

Při spuštění programu, můžete použít metody Ladění Třída zprávy, které pomáhají sledovat program vyrábět spuštění sekvence, zjištění poruch nebo výkon informace o měření. Ve výchozím nastavení zprávy, Ladění vytvoří třídu, která se zobrazí v okně výstupu aplikace Visual Studio Integrované vývojové prostředí (IDE).

Ukázkový kód používá WriteLine Metoda vyrábět zprávu, která následuje za řádek zakončení. Při použití této metody k výrobě zprávy se zobrazí každou zprávu na samostatném řádku v okně výstupu.

Při použití Vyhodnocení Metoda Ladění Třída okna výstupu zobrazí zprávu pouze v případě, že je určitý podmínka vyhodnocena jako false. Zpráva se zobrazí také v modálním dialogovým oknem do uživatel. Dialogové okno se zprávou, název projektu a Debug.Assert Číslo výpisu. Dialogové okno obsahuje také následující tři příkazová tlačítka:
  • Přerušení: Aplikace přestane pracovat.
  • Opakování: Aplikace se přepne do režimu ladění.
  • Ignorovat: Aplikace pokračuje.
Uživatel musí na jednu z těchto tlačítek před aplikace můžete pokračovat.

Můžete rovněž nasměrovat výstup Ladění Třída do jiných míst určení než v okně výstupu. Na Ladění Třída má kolekce s názvem Posluchače který obsahuje Naslouchání objekty.

Každý Naslouchání objekt monitory Ladění výstup a nasměruje výstup do zadaného cíle.

Každý Naslouchání v Naslouchání kolekce přijme jakýkoli výstup, který Ladění Třída generuje. Použít TextWriterTraceListener Třída definovat Naslouchání objekty. Můžete určit cíl TextWriterTraceListener Třída prostřednictvím jeho konstruktoru.

Některé možné výstup následující cíle:
  • Pomocí okna konzoly System.Console.out Vlastnost.
  • Pomocí souboru text (TXT) System.IO.File.CreateText("filename.txt") prohlášení.
Po vytvoření TextWriterTraceListener objektu, je nutné přidat objekt Debug.Listeners kolekce přijímat výstup ladění.

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

  1. Spusťte aplikaci Visual Studio nebo Visual C# Express Edition.
  2. Vytvořit nový projekt aplikace Visual C# konzolové aplikace s názvem conInfo. Class1 je vytvořen v aplikaci Visual Studio.NET. Program.cs je vytvořen v aplikaci Visual Studio 2005.
  3. Přidání oboru názvů následující nahoře v Class1 nebo Program.cs.
    using System.Diagnostics;
  4. Inicializovat proměnné, které obsahují informace týkající produkt, přidejte následující příkazy deklarace k Hlavní Metoda:
    string sProdName = "Widget";
    int iUnitQty = 100;
    double dUnitCost = 1.03;
  5. Zadejte zprávu, která vytváří třídě jako první Vstupní parametr WriteLine Metoda. Stiskněte kombinaci kláves CTRL + ALT + O a ujistěte se, že je zobrazen v okně výstupu.
    Debug.WriteLine("Debug Information-Product Starting ");
  6. Pro čitelnost, použít Odsazení Metoda odsazení dalších zpráv v okně výstup:
    Debug.Indent();
  7. Chcete-li zobrazit obsah vybrané proměnných, použijte WriteLine Metoda takto:
    Debug.WriteLine("The product name is " + sProdName);
    Debug.WriteLine("The available units on hand are" + iUnitQty.ToString());
    Debug.WriteLine("The per unit cost is " + dUnitCost.ToString());
  8. Můžete použít také WriteLine Metoda zobrazení oboru názvů a název třídy pro neexistuje žádný objekt. Například následující kód zobrazuje System.XML.XMLDocument obor názvů v okně výstup:
    System.Xml.XmlDocument oxml = new System.Xml.XmlDocument();
    Debug.WriteLine(oxml);
  9. Uspořádání výstup, můžete zahrnout kategorie, jako volitelné, druhý vstupní parametr WriteLine Metoda. Zadáte-li kategorii, formát výstupu okno zprávy "kategorie: zpráva." Například první řádek Následující kód zobrazuje "pole: název produktu je pomůcka" ve výstupu 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.ToString(),"Field");
    Debug.WriteLine("Total Cost is  " + (iUnitQty * dUnitCost),"Calc");
  10. Výstupní okno můžete zobrazit zprávy, pouze pokud určený podmínka vyhodnocena jako true pomocí WriteLineIf Metoda Ladění Třída. První vstupní parametr je podmínka pro vyhodnocení o WriteLineIf Metoda. Druhý parametr WriteLineIf zprávu, která se zobrazí, pouze pokud je podmínka v prvním parametrů vyhodnocen na hodnotu true.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear");
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear");
    
  11. Použít Vyhodnocení Metoda Ladění třídy tak, aby se v okně výstup zobrazí zprávu pouze tehdy, pokud Zadaná podmínka vyhodnocena jako NEPRAVDA:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear");
    Debug.Assert(dUnitCost < 1, "Message will appear since dUnitcost < 1 is false");
    
  12. Vytvořit TextWriterTraceListener objekty pro okno konzoly (tr1) a textový soubor nazvaný Výstup.txt (tr2) a potom přidejte každý objekt Ladění posluchače kolekce:
    TextWriterTraceListener tr1 = new TextWriterTraceListener(System.Console.Out);
    Debug.Listeners.Add(tr1);
            
    TextWriterTraceListener tr2 = new TextWriterTraceListener(System.IO.File.CreateText("Output.txt"));
    Debug.Listeners.Add(tr2);
  13. Pro čitelnost, použít Zrušit odsazení metoda odstranění odsazení pro následné zprávyLadění Třída generuje. Při použití Odsazení a Zrušit odsazení metody společně, čtecí zařízení můžete odlišit výstup jako skupina.
    Debug.Unindent();
    Debug.WriteLine("Debug Information-Product Ending");
  14. Zda každý Naslouchání objekt přijímá svůj výstup, zavolejte Vyprázdnění Metoda Ladění Třída vyrovnávací paměti:
    Debug.Flush();

Pomocí třídy trasování

Můžete použít také Trasování Třída zprávy, které sledují provádění vyrábět aplikace. Na Trasování a Ladění třídy sdílet stejné metody vyprodukovat výstup, většinou včetně následujících:
  • WriteLine
  • WriteLineIf
  • Odsazení
  • Zrušit odsazení
  • Vyhodnocení
  • Vyprázdnění
Můžete použít Trasování a Ladění třídy samostatně nebo společně ve stejné aplikaci. V Ladění konfiguraci řešení projektu, obě Trasování a Ladění výstup jsou aktivní. Projekt generuje výstup z obou Tyto třídy všem Naslouchání objekty. Konfigurace řešení uvolnění projektu pouze generuje výstup z Trasování Třída. Vydání konfiguraci řešení projektu ignoruje všechny Ladění vyvolání metody 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. Zkontrolujte, zda Ladění je aktuální konfiguraci řešení.
  2. Pokud Aplikaci Solution Explorer okno není viditelný, stiskněte kombinaci kláves CTRL + ALT + L pro toto zobrazení okno.
  3. Klepněte pravým tlačítkem myši conInfoa klepněte na tlačítkoVlastnosti.
  4. V levém podokně na stránce vlastností conInfo podKonfigurace složky, ujistěte se, že odkazuje na šipkuLadění.

    Poznámka: V aplikaci Visual C# 2005 a Visual C# 2005 Express Edition klepněte na tlačítko Ladění v conInfo stránka.
  5. Výše Konfigurace složky vKonfigurace pole rozevíracího seznamu, klepněte na tlačítko Aktivní (Ladění) nebo Laděnía klepněte na tlačítkoOK. V aplikaci Visual C# 2005 a Visual C# 2005 Express Edition klepněte na tlačítko Aktivní (ladění) nebo Ladění v Konfigurace v poli rozevíracího seznamu Ladění stránky a pak klepněte na tlačítko Uložit v Soubor nabídka.
  6. Stiskněte klávesy CTRL + ALT + O zobrazí výstupní okno.
  7. Stisknutím klávesy F5 spustit kód. KdyžProsazení se nezdařilo. Zobrazí se dialogové okno, klepněte na tlačítkoIgnorovat.
  8. V okně konzoly stiskněte klávesu ENTER. Program by měl. dokončení a okno Výstup se má zobrazit výstup podobný následujícímu
        Debug Information-Product Starting 
        The product name is Widget
        The available units on hand are100
        The per unit cost is 1.03
        System.Xml.XmlDocument
        Field: The product name is Widget
        Field: The units on hand are100
        Field: The per unit cost is1.03
        Calc: Total Cost is  103
        This message WILL appear
        ---- DEBUG ASSERTION FAILED ----
    ---- Assert Short Message ----
    Message will appear since dUnitcost  < 1 is false
    ---- Assert Long Message ----
    
    
        at Class1.Main(String[] args)  <%Path%>\class1.cs(34)
    
        The product name is Widget
        The available units on hand are100
        The per unit cost is 1.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name isWidget
        This message WILL appear
    Trace Information-Product Ending
                        
    
  9. Zobrazí okno konzoly a souboru výstup.txt následující výstup:
    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			
    
Poznámka: Výstup.txt soubor je umístěn ve stejném adresáři jako conInfo spustitelný soubor (conInfo.exe). Obvykle je to složka \bin kde je uložen zdroj projektu. To je standardně C:\Documents and Settings\Uživatel přihlášení\My Documents\Visual studio Projects\conInfo\bin. V aplikaci Visual C# 2005 a Visual C# 2005 Express Edition souboru výstup.txt je umístěn v následující složce:
C:\Documents and Settings\Přihlášení uživatele\My Documents\Visual studio 2005\Projects\conInfo\conInfo\bin\Debug


Kód dokončení Výpis

   using System;
   using System.Diagnostics;

   class Class1
   {
      [STAThread]
      static void Main(string[] args)
      {
         string sProdName = "Widget";
         int iUnitQty = 100;
         double  dUnitCost = 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.ToString());
         Debug.WriteLine("The per unit cost is "+ dUnitCost.ToString());

         System.Xml.XmlDocument oxml = 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.ToString(),"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 since dUnitcost  < 1 is false");

         TextWriterTraceListener tr1 = new TextWriterTraceListener(System.Console.Out);
         Debug.Listeners.Add(tr1);
        
         TextWriterTraceListener tr2 = 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();
      }			
   }


Poradce při potížích

  • Pokud je typ konfigurace řešení Uvolnění, Ladění Třída výstupu je ignorována.
  • Po vytvoření TextWriterTraceListener Třída pro konkrétní cíl. TextWriterTraceListener přijímá výstup Trasování a Ladění třídy. K tomu dochází bez ohledu na to, zda používáte Přidat Metoda Trasování nebo Ladění Třída přidat TextWriterTraceListener aby Posluchače Třída.
  • Pokud přidáte Posluchače objekt pro stejný cíl Trasování a Ladění třídy, každý řádek výstupu je duplikovaný bez ohledu na to, zdaLadění nebo Trasování generuje výstup.
             TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out);
             Debug.Listeners.Add(myWriter);
            
             TextWriterTraceListener myCreator = new TextWriterTraceListener(System.Console.Out);
             Trace.Listeners.Add(myCreator);
             
    

Odkazy

Další informace naleznete v následujících tématech.NET Dokumentace rámec knihovny tříd:
Trasování třídy
http://msdn2.microsoft.com/en-us/library/System.Diagnostics.trace (vs.71) .aspx

Ladění třídy
http://msdn2.microsoft.com/en-us/library/System.Diagnostics.Debug (vs.71) .aspx

Vlastnosti

ID článku: 815788 - Poslední aktualizace: 20. května 2011 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Klíčová slova: 
kbprogramming kbdebug kbnamespace kbhowtomaster kbmt KB815788 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:815788

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