Основы параллельного программирования с использованием Visual Studio 2010

Отладка однопоточного приложения в Visual Studio 2010

Показывать лекцию целиком
  • Создадим Windows приложение с названием "WindowsDebugApplication": (рис 20.1)
  • Создадим простейший калькулятор. Для этого разместим на форме 4 элемента (2 TextBox, 1 ComboBox, 1 Button): (рис 20.2)
  • Добавим в программу следующий код (Коллекция arraysymbol и цикл foreach добавлены для наглядности отладки приложения):
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;
    namespace WindowsDebugApplication
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private double c =0;
            private void Plus(double a,double b)
            {
               c = a + b;
            }
            private void Minus(double a, double b)
            {
                c = a - b;
            }
            private void Multiply(double a, double b)
            {
                c = a * b;
            }
            private void Split(double a, double b)
            {
                c = a / b;
            }
            private void ResultButton_Click(object sender, EventArgs e)
            {
               string symbol =(string) SymbolcomboBox.SelectedItem;
               ArrayList arraysymbol = new ArrayList();
               foreach (var s in SymbolcomboBox.Items)
               {
                   arraysymbol.Add(s);
               }
               double var1 =Convert.ToDouble(FirstVariable.Text);
               double var2 = Convert.ToDouble(SecondVariable.Text);
               switch (symbol)
               {
                   case "+": Plus(var1, var1); break;
                   case "-": Minus(var1, var1); break;
                   case "*": Multiply(var1, var1); break;
                   case "/": Split(var1, var1); break;
               }
               MessageBox.Show("Результат: " + c);
               MessageBox.Show("Количество символов в коллекции: "+ arraysymbol.Count);
            }
        }
    }
  • Теперь, расставим точки останова (breakpoints) в программе. В примере точки останова расставлены напротив методов математических операций и в событии кнопки: (рис 20.3)

    Список доступных всех точек останова (Breakpoints), можно посмотреть в специальном окне, которое вызывается из меню Debug пункт меню "Breakpoints" или сочетанием клавиш CTRL+ALT+B:

    (рис 20.4)
  • Запустите отладку приложения с помощью пункта "Start Debugging" - меню "Debbug" или с помощью клавиши "F5": (рис 20.5)
  • После ввода значений в поля программы и выбора соответствующей операции (сложение, вычитание и т.д), жмем кнопку "Рассчитать", тем самым вызовется метод ResulButton_Click(): (рис 20.6)
  • Запустится пошаговый процесс отладки приложения с точки останова (Breakpoint) в методе ResulButton_Click(): (рис 20.7)
  • Добавим для просмотра значений переменных - переменные arraysymbol (коллекция), и переменную "с". Для этого щелкните на нужной переменной правой кнопкой мыши и выберите из списка "Add Watch": (рис 20.8)

    Переменные также, можно вручную добавлять в список Watch, для этого, достаточно написать имя нужной переменной в колонке Name:

    (рис 20.9)

    Если нужно просматривать состояние всех переменных во время отладки, используется окно Autos (переменные будут появляться в окне автоматически, в зависимости от шага отладчика):

    (рис 20.10)
  • Используйте кнопку "F10" для пошаговой отладки приложения. В процессе пошаговой отладки, курсор отладчика будет заходить в те методы, которые вызываются в методе ResulButton_Click(), в нашем случае это метод Plus() (т.к была выбрана операция сложения - "+"): (рис 20.11)
  • В процессе отладки приложения, значения переменных, в списке Watch, будут изменяться в зависимости от шага: (рис 20.12)

    Всего разработчику доступны четыре списка Watch, которые вызываются из меню Debug или с помощью горячих клавиш "Ctrl+Alt+W,1":

    (рис 20.13)
  • После завершения отладки (и если не возникло не каких ошибок) программа выдаст результаты: (рис 20.14) (рис 20.15)
  • Повторно запустим отладку приложения и намеренно введем значения, вызывающие исключение. В нашем случае это "1a" и "2": (рис 20.16)
  • Если в программе не обрабатываются исключения (блок try, catch), отладчик выдаст ошибку, на строке, где возникает исключение. В нашем случае исключение, связанное с преобразованием формата типа string в формат double: (рис 20.17)
  • Для того что бы остановить отладку используйте пункт меню "Stop Debugging" меню Debug или используя сочетание клавиш "Shift+F5": (рис 20.18)
  • Вернуться к учебному плану