Томский политехнический университет
Опубликован: 23.01.2013 | Доступ: свободный | Студентов: 1158 / 192 | Длительность: 12:09:00
Самостоятельная работа 8:

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

< Лекция 12 || Самостоятельная работа 8 || Самостоятельная работа 9 >
Аннотация: В рамках данного практического занятия, будет рассмотрен процесс создания и отладки однопоточного приложения с использованием Visual Studio 2010.

  1. Создадим Windows приложение с названием "WindowsDebugApplication":
  2. Создадим простейший калькулятор. Для этого разместим на форме 4 элемента (2 TextBox, 1 ComboBox, 1 Button):

    Рис. 20.2.
  3. Добавим в программу следующий код (Коллекция 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);
            }
        }
    }
  4. Теперь, расставим точки останова (breakpoints) в программе. В примере точки останова расставлены напротив методов математических операций и в событии кнопки:

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

  5. Запустите отладку приложения с помощью пункта "Start Debugging" - меню "Debbug" или с помощью клавиши "F5":

    Рис. 20.5.
  6. После ввода значений в поля программы и выбора соответствующей операции (сложение, вычитание и т.д), жмем кнопку "Рассчитать", тем самым вызовется метод ResulButton_Click():

    Рис. 20.6.
  7. Запустится пошаговый процесс отладки приложения с точки останова (Breakpoint) в методе ResulButton_Click():
  8. Добавим для просмотра значений переменных - переменные arraysymbol (коллекция), и переменную "с". Для этого щелкните на нужной переменной правой кнопкой мыши и выберите из списка "Add Watch":

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

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

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

    Рис. 20.11.
  10. В процессе отладки приложения, значения переменных, в списке Watch, будут изменяться в зависимости от шага:

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

  11. После завершения отладки (и если не возникло не каких ошибок) программа выдаст результаты:

    Рис. 20.14.

    Рис. 20.15.
  12. Повторно запустим отладку приложения и намеренно введем значения, вызывающие исключение. В нашем случае это "1a" и "2":

    Рис. 20.16.
  13. Если в программе не обрабатываются исключения (блок try, catch), отладчик выдаст ошибку, на строке, где возникает исключение. В нашем случае исключение, связанное с преобразованием формата типа string в формат double:
  14. Для того что бы остановить отладку используйте пункт меню "Stop Debugging" меню Debug или используя сочетание клавиш "Shift+F5":

    Рис. 20.18.
< Лекция 12 || Самостоятельная работа 8 || Самостоятельная работа 9 >
Владимир Каширин
Владимир Каширин

Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010".

При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п.

Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010.