디버깅(Debugging) 은 코드에 있는 오류(Bug)를 찾아 수정하는 과정입니다.
버그가 발생하는 원인을 분석하고, 실행 흐름을 파악하여 원하는 대로 코드가 동작하도록 만듭니다.
✅ 디버깅을 효과적으로 하기 위한 기본 자세
| 단축키 | 기능 |
|---|---|
| F5 | 중단점까지 실행 (Break Point까지 실행 후 멈춤) |
| Shift + F5 | 디버깅 중지 |
| F10 | 프로시저 단위 실행 (Step Over) – 함수 내부로 들어가지 않고 실행 |
| F11 | 한 단계씩 코드 실행 (Step Into) – 함수 내부로 진입 |
| F9 | 중단점 (Break Point) 설정/해제 |
#include <iostream>
using namespace std;
int MultiplyBy(int a, int b)
{
return a * b;
}
int main()
{
int a = 3;
int b = 5;
int result = MultiplyBy(b, a);
cout << "Result: " << result << endl;
return 0;
}
✅ 디버깅 실행 방법
1. F9 를 눌러 MultiplyBy(b, a); 라인에 중단점(Breakpoint) 설정.
2. F5 를 눌러 디버깅 시작 → 중단점에서 코드 멈춤.
3. F10 (Step Over) → MultiplyBy() 함수로 가지 않고 result를 계산.
4. F11 (Step Into) → MultiplyBy() 함수 내부로 진입.
조사식(Watches) 는 프로그램이 실행 중일 때 변수 값을 확인하고 변경할 수 있는 기능입니다.
✅ 사용법
1. 디버깅 중 F5 를 누르면 조사식 창(Watches Window) 이 나타남.
2. 변수의 현재 값 을 확인할 수 있음.
3. 직접 변수 값을 변경하고, 결과를 실시간으로 확인 가능.
✅ 예제
result 변수의 값을 조사식 창에서 변경하면 프로그램 실행 중 결과가 바뀌는 것을 확인할 수 있음.호출 스택(Call Stack) 은 프로그램이 실행되는 동안 함수 호출 순서를 보여줍니다.
✅ 사용법
1. F5 를 눌러 디버깅 시작 후 F11 로 함수 내부로 들어감.
2. Visual Studio의 "호출 스택(Call Stack)" 창을 확인하여 어떤 함수가 어떤 순서로 실행되었는지 추적.
✅ 예제
MultiplyBy() 함수가 main()에서 호출됨을 호출 스택에서 확인 가능.중단점(Breakpoint) 을 사용하면 코드가 특정 지점에서 멈춰, 실행 흐름을 분석할 수 있습니다.
✅ 사용법
1. 중단점 설정 → F9 를 눌러 특정 코드 라인에 중단점을 추가.
2. 디버깅 실행 → F5 를 누르면 중단점에서 코드 실행이 멈춤.
3. F10 (Step Over) 또는 F11 (Step Into) 를 사용해 한 줄씩 코드 실행.
✅ 예제
int main()
{
int a = 3;
int b = 5;
int result = MultiplyBy(b, a); // 여기서 F9를 눌러 중단점 설정
cout << "Result: " << result << endl;
return 0;
}
✅ 중단점 관리
Ctrl + Alt + B 를 누르면 중단점(Breakpoints) 창이 열림.Delete 키를 사용.조건부 중단점을 사용하면 특정 조건이 만족될 때만 실행을 멈출 수 있습니다.
✅ 사용법
1. 중단점을 추가한 후, 오른쪽 클릭 → "조건..." (Condition...) 선택.
2. 예를 들어 a == 5 일 때만 중단점을 활성화하려면 a == 5 입력.
3. "확인(OK)"을 눌러 설정 완료.
✅ 예제
int main()
{
for (int i = 0; i < 10; i++)
{
cout << "i: " << i << endl;
}
}
F9 를 눌러 cout << "i: " << i << endl; 라인에 중단점 추가.i == 5 설정하면 i 값이 5일 때만 중단됨.중단점을 설정했지만 프로그램이 멈추지 않고 로그만 출력되도록 설정할 수 있음.
✅ 사용법
1. 중단점에서 우클릭 → "동작(Set Action)" 클릭.
2. "메시지 인쇄(Print a message)" 를 선택 후 "Hello Debug!" 입력.
3. "디버깅 계속(Continue debugging)" 옵션을 선택하면 프로그램 실행이 멈추지 않고 로그만 출력됨.
✅ 출력 예시
Hello Debug!
Hello Debug!
Hello Debug!
프로그램 실행 중 특정 코드 위치로 점프하여 실행할 수 있습니다.
✅ 사용법
1. 디버깅 도중 중단점에서 노란색 실행 화살표(▶) 를 원하는 줄로 드래그.
2. 프로그램이 해당 줄부터 다시 실행됨.
✅ 예제
int main()
{
int a = 3;
int b = 5;
int result = MultiplyBy(b, a); // 실행 화살표를 이 줄로 옮겨 다시 실행 가능
cout << "Result: " << result << endl;
return 0;
}
🚀 실제 활용 예시