[C#] 디버깅 하는방법

728x90


우선 예제를 보겠습니다.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace study9
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            

        }
        /// <summary>
        /// 오류를 던져주는 함수
        /// </summary>
        /// <exception cref="Exception"></exception>
        private void myFunction1()
        {
            throw new Exception();
        }

        /// <summary>
        ///  덧셈함수
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <returns></returns>
        private int myFunction2(int num1, int num2)
        {
            int num3 = num1;
            int num4 = num2;

            return num3 + num4;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = 5;
            int b = 7;
            int c = 0;

                        

            //덧셈함수
            c = myFunction2(a, b);

            MessageBox.Show("덧셈결과: " + c);



            //에러를 발생시키는 함수
            myFunction1();

        }
    }
}

 

위 코드를 보면 myFunction1은 일부로 에러를 발생시키는 함수입니다.

 

지금은 코드의 양이 적고 일부로 에러를 발생시키는 거라 바로 알수 있지만 코드의 양이 많아지고 프로젝트의 규모가 커지면 에러의 원인을 바로바로 알기 어렵습니다. 그래서 디버깅을 사용합니다.

 

F9를 누르면 커서가 있는 곳에 중단점을 생성합니다. 

 

중단점이란 디버깅을 시작했을 때 중단되는 지점을 의미합니다.

 

 

빨간색 점이 있는 부분이 중단점입니다.  중단점을 지정했다면 

 

시작버튼 또는 F5키를 눌러 디버깅을 시작합니다.

 

 

이런식으로 중단되는 지점에 표시가 됩니다. 이상태에서  F11을 누르면 코드가 한줄씩 실행됩니다. 이러한 방법을 사용하면 코드의 흐름을 파악할 수 있다는 장점이 있습니다.

 

F11이 아닌 계속 버튼을 클릭하면 다음 중단점까지 바로 이동합니다. 이러한 방법은 빠르게 오류를 찾을 수 있습니다.

'C# Programming > C#' 카테고리의 다른 글

[C#] 라이브러리 생성  (0) 2024.05.15
[C#] 저장 프로시저 호출  (0) 2024.05.15
[C#] Timer  (0) 2024.05.15
[C#] 이벤트 게시 및 수신  (0) 2024.05.15
[C#] 비동기 프로그래밍  (0) 2024.05.15