원문 : Visual Studio Debug Mode - BlackWasp


Visual Studio 디버그 모드를 사용하는 이유는?!
알고는 있지만 말로하자니~ 위 글에서는 말하는 이유는
코드를 라인 단위로 실행하여 변수의 값을 관찰하거나, 버그를 확인할 때 사용한다! 라고 한다!!


The Visual Studio Debugger

프로그램을 디버거로 디버깅 할 수 있게 하려면 어셈블리에 디버깅 심벌이 포함되어 있어야 한다. 이 디버깅 심벌은 어셈블리를 디버깅 모드로 컴파일 할 때 자동으로 추가된다. 반면, 릴리즈 모드로 컴파일 시 디버깅 심벌은 삭제된다.

테스트 하기 위한 소스코드이다. 콘솔 어플리케이션에 다음 코드를 추가하자.

        static void Main(string[] args)

        {

            int table = 12;

            Console.WriteLine("Multiplication Table for {0}", table);


            for (int i = 1; i <= 12; i++)

            {

                int multiplied = Multiply(i, table);

                Console.WriteLine("{0} x {1} = {2}", i, table, multiplied);

            }

        }


        private static int Multiply(int value, int table)

        {

            int multiplied = value;

            multiplied *= table;

            return multiplied;

        }



Starting a Program in Debug Mode

Visual Studio에서 디버거로 프로그램을 실행시키기 위해서 Debug 메뉴의 Debugging 명령을 클릭하거나, F5 단축키를 누른다.
프로그램을 일시 중지 시키기 위해서는 breakpoint를 추가해애 한다. 프로그램이 처리되지 않은 예외를 던지거나 assertion이 실패되었을때도 프로그램이 일시 중지된다.

테스트를 위해 다음 코드에 breakpoint를 추가하자.



F5 버튼으로 디버깅 모드로 실행시킨다. 프로그램 실행 중 breakpoint 부분을 만나면 해당 코드에 노란색 배경색이 칠해진다.
해당 코드 부분은 앞으로 실행되어질 코드이다. 그 코드를 실행시키기 전에 일시 중지된것이다. 다시 F5를 누르면 다음 breakpoint 를 만날때 까지 프로그램이 계속 실행된다.



Stepping Through Code

Step Into (한 단계씩 코드 실행)

디버깅 모드에서 F11키는 "Step Into (한 단계씩 코드실행)" 이다. 해당 라인에서 메소드 내부로 디버깅할 때 사용된다.
F11 키를 누르면 프로그램의 메인 메소드가 실행되기 바로 전에 디버그 모드로 들어가며 일시 중지된다.

Step Over (프로시저 단위 실행)
F10 키를 이용하면 메소드나 프로퍼티 내부로 이동하지 않고 바로 다음 코드로 이동한다.

Step Out (프로시저 나가기)
F11 또는 F10 키를 이용하여 현재 메소드나 프로퍼티에 디버깅중일 때, 코드의 나머지 부분을 실행시켜 빠져 나오고 싶다면 Shift + F11 키를 누른다.


Stopping and Restarting

Shift + F5 (디버깅 중지)
디버깅 중, 디버깅을 종료하고 프로그램을 종료한다.

Ctrl + Shift + F5 (다시 시작)
디버깅 중, 디버깅을 종료하고 프로그램을 다시 디버깅 모드로 시작 한다.


Controlling the Program Flow

Run to Cursor (커서까지 실행)
코드의 특정 위치에서 프로그램이 일시 중지하길 원한다면 해당 위치에 breakpoint를 넣고 디버그 모드로 실행시키게 된다. breakpoint를 넣지 않고 특정 코드 위치에서 마우스 오른쪽 버튼을 누른 후, "Run to Cursor (코드까지 실행)"을 선택하면 프로그램을 실행하여 해당 위치가 실행될 때 프로그램이 디버그 모드로 들어와 일시 정지된다.


Set Next Statement (다음 문 설정)
디버그 중 프로그램의 흐름을 바꾸고 싶을 때 Set Next Statement (다음 문 설정) 을 사용한다. 원하는 위치에 마우스 오른쪽 버튼 클릭 후 "Set Next Statement" 를 선택한다. 이 때, 현재 break 되어 있는 메소드나 프로퍼티에서만 사용할 수 있다. 또한 현재 break 되어 있는 곳과 Set Next Statement 로 선택한 곳 중간의 코드는 무시된다.



Using the Locals Window

디버깅 중 현재 메소드에 위치한 지역 변수의 값을 관찰할 수 있다.


또한 마우스를 해당 변수에 가져가면 툴팁으로도 확인할 수 있다.

@
Posted by six605
,