티스토리 뷰

 

MS Visual Studio 디버깅 기능을 처음 써본다.

사실 지금까지는 cout이나 printf로 콘솔에 값을 출력하는 방법으로만 디버깅을 해왔다.

필요없는 출력구문을 나중에 지우는것도 일이고, 확인하려는 값이 많아질수록 복잡해져서 문제가 된다.

 

일단 꼭 필요한 기능이라고 생각되는것부터 찾아보고 복습할겸 일단 블로그에 올린다.

(내용이 수정/보완 될 수 있다)

 

<1> 빨간점 만들기.

먼저 코드 옆에 클릭하면 🔴빨간점이 생긴다.

 

이 점을 중단점이라고 하는데

작동하던 프로그램을 강제로 중단하고 상태를 확인하고자 하는것이다.

 

디버깅 모드로 실행시, 이부분에서 실행이 일시적으로 멈추어서, 그 시점의 변수 상태를 볼수가 있다.

 

중단점에서 멈췄을때 할수 있는 기본적인 일은 크게  두가지로 볼수 있다. 

(1)변수를 확인하거나, (2)코드를 이어서 실행하는것이다.

(더 고급스런 기능도 있지만 지금은 넘어간다)

 

<2>코드 이어서 실행하기 

코드를 작성한 상태에서 F5를 누르면 디버깅 모드로 프로그램이 실행된다.

좀 다르게 말하면, 디버깅 기능이 작동하는 상태로 프로그램이 실행된다.

 

디버깅 기능이 작동할때에는 디버깅 기능을 쓸수있다.

나는 두가지 기능만 먼저 익혔다.(단축키를 누르면 기능이 작동함)

 

F5 : (continue) 다음 빨간점이 나올때까지 코드를 실행한다.

F10 : (Step over)코드를 한줄씩 실행한다. 한 줄 안에 함수가 포함되어 있어도, 한줄 전체를 다 실행한다.

F11 :  (Step into) 코드를 한줄씩 실행하는데, 함수를 만나면 더 자세히 들어간다.

 

 

참고: 프로그램 최초 실행시 단축키

반응형

F5: 디버깅 모드로 실행

Ctrl + F5 : 디버깅하지 않고실행.(빨간점을 무시하고 그냥 실행된다)

Ctrl + Shift + F5 : 프로그램 다시시작(실행중이던 프로그램을 직접 끄고 다시 켜는 시간을 단축시켜줌)

 

 

<3>변수 확인하기

변수를 확인하려면, Locals창, Auto창 혹은 Watch창에서 확인한다.

(1) Locals창(한글버전 : 지역)에서 현재 실행중인 메소드의 지역변수 상태를 확인할수 있다.

(2) Auto창(한글 : 자동)에서는 최근 3개까지 나온다?

(3) Watch창

특별히 보고싶은 변수만 모아서 볼수 있는 창이다.

변수 명에서 우클릭 하고 Add Watch(조사식 추가)를 하면 Watch(조사식)창에서 상태를 확인할 수 있다.

(작성한 코드의 변수명 위에 바로 우클릭하면된다.)

 

Locals창에 지역변수만 나오고 전역변수는 나오지가 않은데 Watch창에 추가해서 볼수가 있었다.

 

변수 map[][]에서 우클릭.
"Add Watch" 한 변수를 Watch창에서 확인할수 있다.

 

 

 

<4>창이 없어지는 경우

창이 없어졌을때, 다시 찾으려면,  Debug-Windows에서 찾을 수 있다.

 

 

그 외

이외에도 메뉴만 열어봐도 다양한 기능이 있는걸 볼수 있지만 다 써보지는 못했다....

간단한 기능이라도 먼저 익혀가며 알아가는것도 좋을것같다.

 

관련 글 더 보기

 

Visual Studio 디버깅 가이드 | 테크버킷 블로그

비주얼 스튜디오(Visual Studio)에서의 기본적인 디버깅 방법을 소개합니다. 기본적인 디버깅 방법. 한 줄씩 실행하는 방법. 변수를 추적하는 방법.

techbukket.com

또 Microsoft문서가 잘되어있으니 링크를 들어가보면 좋은 자료가 많다.

반응형
 

완전 초보자를 위한 코드 디버깅 - Visual Studio

처음으로 디버깅하는 경우 Visual Studio를 사용하여 디버깅 모드에서 앱을 실행하는 데 도움이 되는 몇 가지 원칙을 알아봅니다.

docs.microsoft.com

 

Visual Studio 디버거를 사용하여 C++를 디버그하는 방법 알아보기 - Visual Studio

Visual Studio 디버거를 시작하고, 코드를 단계별로 실행하고, 데이터를 검사하는 방법을 알아봅니다.

docs.microsoft.com

 

반응형
댓글