출처 : http://blog.yuns.me/257


기본적인 콘솔 프로그램이면 그냥 콘솔 창에 여러 메세지를 적어 출력하면되지만 윈도우 프로그램의 경우 아래 출력창에 출력해야 하지요. 간단하게 확인하고 싶을 경우,

1
Debug.WriteLine("Debugging Message");

이렇게 적어주면 됩니다.


BUT...


런타임 에러의 경우 이런식으로 출력하면 에러가 났는지 안 났는지 계속 출력창을 봐야합니다. 이럴 때 경고창을 띄워 확인해줄 수 있습니다.

1
2
3
4
public static void Assert(
    bool condition,
    string message
)

첫 번째 인자로 조건을 두 번째 인자로 출력할 메세지를 넣어줍니다. 경고창은 조건이 False일 때 나타납니다. 실제 사용은 다음과 같이합니다.

1
Debug.Assert(count != 0, "Count is zero");





-----------------------------------------------------------------------------------------



출처 : http://blog.naver.com/27ysh?Redirect=Log&logNo=10101859667




오늘은 Debug.WirteLine 메서드에 포스팅해보겠습니다.

 

네임스페이스: System.Diagnostics;

 

Debug클래스의 메서드를 이용하여 디버깅 정보를 출력한다.

여러가지 메서드가 있겠지만, 그중에서 제가 가장 많이 사용하는

Debug.WriteLine(string);에 대하여 써보겠습니다.

 

보시면 알겠지만, 콘솔 프로그래밍에서 정말 많이 쓰던 Console.WirteLine메서드와 참 유사합니다.

유사한 정도가 아니라 거의 똑같지만 :)

 

그럼 무엇이 다를까 ?

Cosole.WriteLine메서드 같은 경우에는 콘솔 프로그래밍에서 사용하게 되면,

콘솔창에 바로 내용이 출력되지만,

Debug.WriteLine같은 경우에는 화면에 출력되지 않습니다,

 

그럼 무엇때문에 사용할까 ?

 

프로그래밍을 하면서 Debug.WriteLine메서드를 적절하게 사용한다면,

프로그램 실행중의 버그, 속도저하 등을 확인할 수 있다는게 가장 큰 장점이 아닐까 ?

조금 귀찮지만 적절한 위치에 사용하며 프로그래밍을 한다면,

나중에 버그를 잡는데 엄청난 시간과 삽질을 투자하지 않아도 된다.

 

그럼 화면에 출력도 안되는 이 아이의 결과를 어떻게 확일할까 ?

 

나 같은 경우에는 DebugView라는 프로그램을 써서 결과를 확인하는데,

설치할 필요 없이 실행만으로 간단히 사용할 수 있는 프로그램이다.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;

namespace DebugTest

  {
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            Debug.WriteLine("Debug.WriteLine메서드입니다.");


        }    

    }

이렇게 쓰고 실행시켜서 보면 윈도우폼에는 아무것도 나오지 않지만,

DebugView를 사용하면 DebugView화면에 "Debug.WriteLine메서드입니다." 라는 메시지가

보일 것이다.

 

이렇게 사용법을 알고 어떻게 쓴다는 것을 알아도,

막상 어떻게 사용해야 하는지 감이 전혀 안 올것이다. 나도 전혀 감이 오지 않았기에 :(

그럼 내가 지금 하고 있는 프로그래밍에 예를 들어 설명해보겠다.

 

지금 밑에 DebugView의 화면인데 지금 저 숫자들은 패킷정보이다.

보이지 않기에 실행화면에 수치가 제대로 안나오거나 하면 어디서 뻑(?)이 났을까 여기저기

열심히 삽질을 해야 겠지만, 저렇게 패킷정보를 DebugView로 확인하면서

삽질하는 횟수가 굉장히 많이 줄었다.

나 같은 경우도, C#을 배우면서 이걸 어디다 쓰지 라고 생각했지만 일을 시작하면서

Debug메서드들의 엄청난 위력(?)을 실감하게 되었다.

언어 구사력이 매우 부족해, 그냥 마구잡이로 글을 썻는데.. 이해가 안가시면 댓글을 달아주시면

제 지식을 총동원해서 대답해드리겠습니다  :)

아, 그리고 첨부파일로 DebugView를 올렸으니 필요하신분들은 가져가서 쓰시길,

오늘 하루도 좋은 하루들 보내세요.

Posted by 요지
,