[알고리즘] Visual Studio로 디버깅하기

Visual Studio로 디버깅하기 C++

알고리즘 문제 해결에서 디버깅을 하는 습관을 잘 길러두는 것이 아주 중요하다고 생각합니다.
문제가 어려워지고, 자신의 코드도 길어질수록 논리적으로 잘 못 생각하는 일이 너무너무 흔하기 때문에 항상 디버깅하는 실력을 키워야 합니다.
저의 경우엔 디버깅 모드를 사용하기 귀찮아서 그때그때 cout이나 printf로 변숫값을 콘솔에 출력하여 확인하였지만,
좋은 프로그래머가 되기 위해 디버깅 모드를 열심히 연습하고자 글을 써봅니다.

간단한 예제

간단한 cpp 소스로 예를 들어봅시다.

#include <iostream>
using namespace std;
int main(void) {
	int a = 10;
	int b;
	b = 20;
	int c;
	cout << "c값을 입력하시오.\n";
	cin >> c;
	cout << "a : " << a << '\n' << "b : " << b << '\n' << "c : " << c << '\n';
}

정말 단순한 코드입니다. 이 코드를 한 줄 한 줄 읽으며 디버깅 모드를 체험해 봅시다.

Debug Mode + F5

1
VS 상단에서 Release 모드가 아닌 Debug 모드로 선택해 줍니다.

디버깅이 필요 없을 때 Release 모드로 실행하면 컴파일 속도가 조금 향상됩니다.

그 뒤 F5을 누르면 디버깅 모드가 실행됩니다.
중단점에 상관없이 처음부터 시작하려면 F11이나 F10을 누르면 시작됩니다.

조사식

디버그 -> 창 -> 조사식 메뉴를 선택해서 변수의 값을 추적할 수 있는 조사식을 열 수 있습니다.
변수값들을 추가하여 실시간으로 변숫값을 확인해 줍니다.
2
값이 할당되지 않은 변수들에 쓰레기 값들이 채워져 있습니다.

F10, F11로 한 줄 한 줄 진행

F10을 눌러서 한 줄 한 줄 소스코드를 진행하면, 변숫값이 바뀌는 것을 확인할 수 있습니다.
지금은 예제가 너무 단순하지만, 복잡한 소스(반복문, 제어문, 함수, 구조체 등등)에서는 조사식이 매우 유용합니다.
이때 함수를 만나면, F11을 누르면 해당하는 함수 안으로 들어가서 디버깅을 할 수 있습니다.
중간에 cin 명령어의 경우엔, 콘솔에 값을 입력해 주기 전까지 디버깅 모드가 진행이 되지 않습니다.
3
최종 값이 모두 할당된 것을 확인할 수 있습니다.