반응형
안녕하세요!
이번 주는 실전 코딩에서 정말 중요한 기술인 디버깅(Debugging) 을 배워봅니다.
프로그래밍을 하다 보면 코드가 안 돌아가거나, 이상한 값이 나오는 경우가 정말 많죠.
이럴 때, "어디가 문제인지"를 찾아내는 기술이 바로 디버깅입니다.
숙련된 프로그래머일수록 코드를 '덜 틀리는 사람'이 아니라, 빨리 고칠 줄 아는 사람이에요!
1. 디버깅이란?
디버깅은 코드에 있는 버그(bug)를 찾아서 고치는 과정입니다.
버그는 대부분 논리 오류나 잘못된 조건문, 변수 값의 이상에서 발생하죠.
✅ 디버깅의 기본 원칙
- 문제를 재현할 수 있어야 한다.
- 작동 흐름을 추적할 수 있어야 한다.
- 문제를 고친 뒤에도 다른 기능에 영향이 없는지 확인해야 한다.
2. 디버깅 도구 – gdb 사용하기
리눅스 환경에서는 gdb(GNU Debugger)를 많이 사용합니다.
gdb 사용 예제
gcc -g main.c -o main // -g 옵션: 디버깅 정보 포함
gdb ./main
gdb 안에서 자주 쓰는 명령어:
명령어 기능
break [줄번호] | 중단점 설정 |
run | 프로그램 실행 |
next | 다음 줄 실행 |
print 변수 | 변수 값 출력 |
continue | 계속 실행 |
quit | 종료 |
3. 디버깅 예제 – 오류 있는 코드
#include <stdio.h>
int main() {
int a = 10;
int b = 0;
int result = a / b; // 💥 런타임 오류 발생
printf("결과: %d\n", result);
return 0;
}
위 코드를 실행하면 0으로 나누는 오류(Division by zero) 가 발생합니다.
gdb로 추적해보기
gdb ./main
(gdb) run
Program received signal SIGFPE: Floating-point exception.
(gdb) backtrace
💡 backtrace는 에러가 발생한 함수 호출 흐름을 보여줍니다.
4. IDE 디버깅 – VSCode 또는 CLion
그래픽 인터페이스로 디버깅하고 싶다면 VSCode 또는 CLion과 같은 IDE를 사용하는 것도 좋은 방법입니다.
- 중단점(Breakpoint) 클릭으로 설정
- Watch, Variables, Call Stack 패널로 실시간 추적
- 마우스로 값 확인 가능
🧠 tip: 처음에는 printf()로 값 찍는 디버깅도 충분히 강력합니다!
5. 오늘의 과제 🎯
과제 주제
🐛 오류가 포함된 C 코드의 버그를 찾고 고치기
과제 내용
- 일부러 버그가 포함된 코드를 제공 (예: 포인터 오류, 조건문 실수)
- printf() 또는 gdb를 사용해 문제 위치를 파악
- 정상 작동하도록 수정한 코드 제출
👉 예시 버그 코드는 따로 제공하거나, 학생 스스로 만들어보게 할 수 있어요.
마무리 정리
- 디버깅은 프로그래밍에서 가장 중요한 실전 능력
- gdb, IDE, printf() 등 다양한 방법을 사용할 줄 알아야 함
- 중요한 건 도구가 아니라 문제를 추적하는 사고력
다음 시간에는 본격적으로 프로젝트를 시작합니다!
직접 주제를 정하고, 설계서를 작성하면서 팀 프로젝트의 시작을 준비해볼 거예요.
반응형
'C언어 > C언어 고급' 카테고리의 다른 글
고급8강_프로젝트 발표 & 코드 리뷰 (0) | 2025.04.22 |
---|---|
고급7강_실전 프로젝트 제작 (0) | 2025.04.22 |
고급6강_프로젝트 설계 및 역할 분담 (0) | 2025.04.22 |
고급4강_C 라이브러리 활용법 완전 정복 (3) | 2025.04.22 |
고급3강_헤더파일과 모듈화 완전 정복 (0) | 2025.04.22 |