Visual Studio Debugger

코딩을 하다 보면 필연적으로 디버거를 사용해야 한다.
Visual Studio를 떠날 수 없는 가장 큰 이유중 하나도 바로 강력한 디버깅 기능 때문이다.
기본적이지만 강력한 Visual Studio의 디버깅 기능중 두가지를 소개한다.
*Visual Studio 2012 버전을 기준으로 설명하나 타 버전에서도 “아마” 동일하게 사용할 수 있을 것이다.

동적으로 할당한 포인터 배열의 내용을 더 편리하게 보기.

C/C++에서 동적 배열의 사용 빈도는 말로 표현하기 힘들 정도이다.
동적 배열의 내용을 좀 더 쉽고 편리하게 보는 방법을 소개한다.
배열의 내용을 보아야 할 적당한 위치에 브레이크 포인트를 설정하고 디버깅을 시작한다. (단축키 F5)
위 그림처럼 “조사식” 으로 이동한다.
이름 부분을 클릭하면 사용자가 직접 보고 싶은 변수를 입력하여 볼 수 있는데, int *tree 로 선언한 동적 배열의 24칸을 보는 방법은 다음과 같다.
아래와 같이 입력한다.
tree, 24
그러면 보는 것처럼 tree[0] ~ tree[23] 까지의 내용을 한번에 표시해 준다.
*tree[23]은 할당되지 않은 영역.
이 방법을 사용하지 않고 동적 배열의 내용을 조사식에서 보고자 한다면, tree[0], tree[1], … , tree[23] 과 같은 방법으로 일일이 입력을 해야 하는 번거로움이 있다.

반복문의 특정한 조건이 성립될 때부터 디버깅을 하는 방법

예를 들어서 for 문을 100번 도는 코드가 있다고 하자.
그런데 프로그램이 for문을 95번 수행할 때까지는 에러가 나지 않다가, 96번째에서 에러를 발생시키며 죽는다고 가정하자.
for문에서 96번째가 될 때의 속내용을 보고 싶은데, 그렇다고 F10을 계속 눌러갈 수는 없는 노릇이다.
그럴 때 다음과 같은 방법을 사용한다.
먼저, 반복문의 적절한 위치에 브레이크 포인트를 설정한다. (브레이크 포인트 단축키 F9)
그럼 아래와 같은 형태로 빨간 점이 코드라인 옆에 생성된다.
이 때, 저 빨간색 점을 마우스 우클릭으로 클릭해 준다.
위 그림에서 “조건”을 선택한다.
iterator로 변수 i를 선언해서 사용했다.
i 가 15일때의 상황을 보고 싶다고 가정하자.
아래 그림과 같이 입력해 준다.
확인을 클릭하면 아까 빨간색 원이 다음과 같이 변경된 것을 확인할 수 있다.
이제 디버깅을 시작하고 정말 i가 15가 되었을 때 멈추는지를 보자. (단축키 F5)
위 그림처럼 i의 값이 15 인 것을 확인할 수 있다.

오늘 소개한 2가지 디버깅 기능 활용은 간단하지만 디버깅 시간을 매우 단축시켜줄 수 있는 유용한 기능이다.

댓글 남기기