Как трассировки и отладки в 2005 Visual Basic или в Visual Basic.

Переводы статьи Переводы статьи
Код статьи: 313417 - Vizualiza?i produsele pentru care se aplic? acest articol.
Это версия 6.0 Visual Basic Microsoft для в статье, см. 161153.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье показано, как использовать классы Trace и Debug . Эти классы доступны в Microsoft. Framework. Эти классы можно использовать для предоставления сведений о производительность приложения во время разработки приложения или после развертывание в рабочей среде. Эти классы являются только одной частью Инструментирование функций, доступных в среду. Framework.

Требования к

В следующем списке представлены рекомендуемого оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, которые необходимы:
  • Microsoft Windows 2000 или Microsoft Windows XP
  • 2005 Visual Basic Microsoft или Microsoft Visual Basic .net
В данной статье, также предполагается, что вы знакомы с программой в режиме отладки.

Описание приема

Действия, описанные в разделе «Создание образца с помощью класса Debug» показано, как создать консоль приложение, использующее класс Debug для предоставления сведений о программе выполнение.

При выполнении программы, можно использовать методы класса Debug для получения сообщений, которые помогают отслеживать для обнаружения сбои, или для предоставления информации для измерения производительности. По умолчанию сообщения, которые создает класс отладки отображаются в окне вывода Visual Studio корпорации Майкрософт Интегрированная среда разработки (IDE).

В примере кода используется метод WriteLine , чтобы получить сообщение, которое следует линия Признак конца. При использовании этого метода для получения сообщения, каждое сообщение выводится в отдельной строке в окне вывода.

При использовании метода класса DebugAssert в окне вывода отображаются сообщения, только если заданное условие не выполняется. Сообщение также появляется в модальном диалоговом окне для пользователь. Диалоговое окно содержит сообщение, имя проекта и номер инструкция Debug.Assert . Диалоговое окно также содержит три команды кнопки:
  • Прервать: приложения останавливается.
  • Повтор: приложение переходит в режим отладки.
  • Пропустить: приложения продолжается.
Пользователь должен нажать на одну из этих кнопок, прежде чем приложение можно продолжить.

Также можно направить вывода из класса Debug в места назначения в окне вывода. Класс Debug имеет коллекция с именем прослушиватели , включающий объектов прослушивателя . Каждый объект прослушивателя отслеживает выходные данные отладки и направляет выходные данные в заданном конечном расположении. Каждый прослушиватель в коллекцию Listeners Получает выходные данные, создающий класс Debug . С помощью класса TextWriterTraceListener для определения объектов прослушивателя . Можно задать для класса TextWriterTraceListener через его конструктора. Некоторые возможные выходные данные целевых объектов включают:
  • В окне консоли с помощью свойства System.Console.Out .
  • Текст (.txt) файл с помощью инструкции System.IO.File.CreateText("FileName.txt")) .
После создания объекта TextWriterTraceListener , необходимо добавить объект в коллекцию Debug.Listeners для получения выходных данных отладки .

Создать образец с помощью класса Debug

  1. Чтобы создать новый проект консольного приложения с именем conInfo с помощью 2005 Visual Basic или Visual Basic .net. Открытый модуль с именем Module1 добавляется в проект по по умолчанию.
  2. Для инициализации переменных для хранения информации о продукт, добавьте следующие операторы Dim :
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. Определить сообщение, которое создает класс как первый входной параметр метода WriteLine . Нажмите сочетание клавиш CTRL + ALT + O, чтобы убедиться, что Отображается окно вывода.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. Для удобства чтения используйте метод Отступ для отступа последующие сообщения в окне вывода.
    Debug.Indent()
    					
  5. Чтобы отобразить содержимое выбранных переменных, используйте метод WriteLine следующим образом:
    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 для отображения пространства имен и имя класса для отсутствует объект. Например следующий код отображает пространство имен System.Xml.XmlDocument в окне «Вывод»:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. Для систематизации выходных данных, можно включить категорию как необязательный второй входной параметр метода WriteLine . Если указать категорию, формат вывода окно сообщения является «категория: сообщение.» Например, первая строка Следующий код отображает "поля: название продукта-это графический элемент «в выходных данных окно:
    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. В окне вывода можно отображать сообщения, только если назначенным условие принимает значение true, используя метод WriteLineIf класса Debug . Проверяемое условие является первой входной параметр метод WriteLineIf . Второй параметр WriteLineIf — сообщение, которое появляется, только если условие в первой параметр имеет значение true.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. Таким образом, чтобы в окне вывода отображаются, только если сообщение с помощью метода Assert класса Debug указанное условие оценивается как false:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. Создание объектов TextWriterTraceListener для окна консоли (tr1) и текстовый файл с именем OUTPUT.txt (tr2) и добавьте каждый объект в коллекцию Listeners отладки :
    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. Для удобства чтения, метод Unindent действует метод служит для удаления отступа, последующие сообщения Создает класс Debug . При использовании отступов и методы Отменить отступ вместе, средство чтения можно отличить вывод как группа.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. Чтобы убедиться, что каждый объект прослушивателя получают все выходные данные, вызовите метод Flush для буферов класс отладки :
    Debug.Flush()
    					

С помощью класса Trace

Также можно использовать класс трассировки для получения сообщений, наблюдения за выполнением приложения. Классы Trace и Debug используют большую часть же методы для получения выходных данных, включая:
  • WriteLine
  • WriteLineIf
  • Отступ
  • Отменить отступ
  • Утверждение
  • Очистить
Можно использовать трассировку и классы Debug отдельно или вместе в одном приложении. В Отладка проекта конфигурации решения активны выходные данные трассировки и отладки . Проект создает выходные данные из обоих Эти классы для всех объектов прослушивателя . Тем не менее только проект рабочей конфигурации решения Создает выходные данные из класса Trace . Решение конфигурации выпуска проекта игнорирует вызовы методов класса любой отладки .
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()
				

Убедитесь, что он работает

  1. Убедитесь в том, что Отладка является текущей конфигурации решения.
  2. Если окно обозревателя решений не отображается, нажмите клавишу Сочетание клавиш CTRL + ALT + L для отображения этого окна.
  3. Щелкните правой кнопкой мыши conInfoи выберите команду Свойства.
  4. В левой области страницы свойств conInfo в разделе Папка конфигурации убедитесь, что стрелка указывает Отладка.
  5. Выше в папке «Конфигурация» в раскрывающемся списке Конфигурация выберите активный (Отладка) или отладкии нажмите кнопку ОК.
  6. Нажмите сочетание клавиш CTRL + ALT + O, для отображения в окне вывода.
  7. Нажмите клавишу F5 для запуска кода. Когда появится диалоговое окно , нажмите кнопку " Пропустить".
  8. В окне консоли нажмите клавишу ВВОД. Программа должна "Готово" и в окне вывода должен отображать следующие выходные данные:
    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. Отображать окно консоли и файл Output.txt следующие выходные данные:
    (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
    						

Полный пример кода

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
				

Устранение неполадок

  • Если тип конфигурации решений выпуска, вывода класса Debug обрабатывается.
  • После создания класса TextWriterTraceListener для определенного целевого TextWriterTraceListener принимает выходные данные трассировки и отладки классы. Это происходит независимо от используется метод Add класса, отладки или трассировки для добавления прослушивателей класса TextWriterTraceListener .
  • При добавлении объекта прослушивателя для одного целевого объекта трассировки и отладки классы каждой строки вывода дублируется независимо Создает выходные данные, отладки или трассировки .
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
    Dim tr2 As New TextWriterTraceListener(System.Console.Out)
    Trace.Listeners.Add(tr2)
    					

Ссылки

Для получения дополнительных сведений обратитесь к следующим разделам Документация библиотеки классов платформа.NET Framework:
Класс Trace
.aspx http://msdn2.Microsoft.com/en-us/library/System.Diagnostics.Trace (vs.71)

Класс отладки
.aspx http://msdn2.Microsoft.com/en-us/library/System.Diagnostics.Debug (vs.71)


Как инструментировать небольшое приложение с трассировкой?


http://ASP.dotnetheaven.com/HOWTO/doc/TraceDemo.aspx
или

http://QuickStart.developerfusion.co.uk/QuickStart/HOWTO/doc/TraceDemo.aspx

Свойства

Код статьи: 313417 - Последний отзыв: 10 сентября 2012 г. - Revision: 6.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 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 313417

Отправить отзыв

 

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