-
디버깅
학습내용 학습목표 ▪ 프로그램 설계
▪ 코드 분석▪ 디버깅의 기본 개념에 대해 설명할 수 있다.
▪ 각 개발환경별 디버깅 방법을 사용할 수 있다.디버깅 개요
1. 정의
디버깅(Debugging)이란?
☞ 프로그래밍 과정 중에 발생하는 오류나 비정상적인 연산과 같은 버그를 찾고 수정하는 과정
버그(Bug)는 프로그램 과정 중에 발생하는 오류
☞ 오타로 인한 오류
☞ 문법적인 오류
☞ 논리적인오류
☞ 잘못된 라이브러리 사용
☞ 시스템상의 한계로 인한 오류
//문법적 오류 int arr[10] for(int i=0;i<10;i++) { arr[i] = i; } //논리적 오류 int arr[10]; for(int i=0;i<12;i++) { arr[i] = i; } int a = 0; while(a < 100) { a = 1; }
2. 디버거(Debugger)
☞ 디버깅을 수행하는 프로그램 //Visual Studio, Code Blocks
☞ 대부분의 IDE는 디버거를 내장
☞ 수행 기능
- 변수값 추적
- 중단점 지정
- 모듈 단위 실행
[1] 디버깅 방법
☞ 한 문장씩 수행
☞ 모듈 단위로 나누어서 수행
[2] 디버깅 프로그램
디버깅 수행하기
1. Visual Studio Debugging
[1] 디버깅 순서
☞ 프로그램오류가발생한곳이라고의심되는부분에중단점을설정하기
☞ ‘디버깅 시작’ 누르기
☞ 프로그램이 실행되다가 중단점을 만나면 그 부분에서 멈추기
☞ ‘F11’키로한줄씩실행하면서아래‘자동’창의변수값확인및오류찾기
☞ ‘Shift + F5’로 디버깅을 종료하고 오류 수정하기
[2] 프로그래밍
#include <stdio.h> int sub(int x) { int i, y = 100; for (i = 0; i < 6; i++) { x += i; y = x + i; } return x; } int main() { int i, a = 1, b = 10, c; c = sub(a); for (i = 0; i < 10; i++) { if (a = 5) break; a += i; b = a + i; } printf("a=%d b=%d c=%d",a, b, c); return 0; }
[3] 단축키
F5 디버깅 시작/계속 F9 중단점 설정/해제 F11 한 문장씩 수행 Shift+F5 디버깅 중지 F10 프로시져단위실행 F4 컴파일 오류 확인 2. DEV C++ Debugging
[1] 디버깅 순서
☞ 프로그램 오류가 발생한 곳이라고 의심되는 부분에 중단점을 설정하기
☞ [debug] 탭에서 ‘debug’를 클릭하기
☞ 프로그램이 실행되다가 중단점을 만나면 그 부분에서 멈추기
☞ ‘F7’키로 한 줄씩 실행하면서 변수값 확인 및 프로그램 실행 화면에서 오류 찾기
☞ [Stop Execution] 버튼을 눌러 디버깅 종류 및 오류 수정
3. Code Blocks Debugging
[1] 디버깅 순서
☞ 프로그램오류가발생한곳이라고의심되는부분에중단점을설정하기
☞ [debug]탭에서 [start], [step into] 클릭하기
☞ 프로그램이 실행되다가 중단점을 만나면 그 부분에서 멈추기
☞ F7’키로한줄씩실행하면서프로그램이실행된화면에서오류찾기
☞ 변수추적은[debug]의[debugging windows]-[watches]를열어서확인
☞ [stop debugging] 버튼을눌러서디버깅을종료하고오류를수정
학습정리
1. 디버깅 개요
▪ 버그란 프로그래밍 과정 중에 발생하는 오류를 말함
▪ 디버깅(Debugging)은 프로그래밍 과정 중에 발생하는 오류나 비정상적인 연산과 같은 버그를 찾고 수정하는 과정
▪ 디버깅은 모듈 단위로도 디버깅을 할 수 있음
2. 디버깅 수행하기
▪ 대부분의 IDE는 디버깅 기능을 내장하고 있음
▪ 디버깅을 시작 후 필요에 따라 변수값을 지정하여 해당 변수의 변화되는 과정을 추적하는 것이 가능함
▪ 디버깅 시 중단점을 지정하여 특정 지점까지 문장을 수행 하는 것이 가능함
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 2 - 라이브러리 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 애플리케이션 최적화 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 프로그래밍 언어별 특성 (0) 2021.08.08 프로그래밍 언어 활용 part 1 - 애플리케이션 구현 (0) 2021.08.01 프로그래밍 언어 활용 part 1 - 전처리기 (0) 2021.08.01 댓글