wn42
코딩이랑 이것저것
wn42
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • 프로그래머스 (23)
      • LV1 (11)
      • LV2 (1)
      • LV3 (3)
      • 연습 (8)
    • 딥러닝 공부 (0)
      • 머신러닝&딥러닝 이론 (0)
    • 임베디드 (17)
      • Adventure Design (1)
      • 센서기반모바일로봇 (5)
      • ROS (9)
      • Google Coral (2)
    • C++ (38)
      • C++ 기초 (34)
      • 자료구조 및 알고리즘 (4)
    • Python (14)
      • 기본 파이썬 문법 (6)
      • Python 기초 (8)
    • 빅데이터 (9)
      • 빅데이터 첫걸음 시작하기(국비지원) (5)
      • 빅데이터 공부 (4)
    • 알고리즘 공부 (2)
      • 기본 알고리즘 (2)
    • 전자공학 (10)
      • 반도체 공정 (3)
      • 무선데이터통신 (7)
      • 반도체공학 (0)
    • C# (0)
      • C# 기본 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • c++
  • 클래스
  • 정렬
  • Queue
  • 변수
  • 큐
  • Python
  • 조건문
  • 바이트디그리
  • ROS
  • 데이터분석
  • 패스트캠퍼스
  • 반복문
  • 빅데이터 첫걸음 시작하기
  • 상속
  • google coral
  • 딥러닝
  • 소멸자
  • 프로그래머스
  • numpy
  • 데이터분석 인강
  • 인스턴스
  • 빅데이터
  • K디지털크레딧
  • stl
  • 스택/큐
  • 내일배움카드
  • 스택
  • 파이썬
  • 노드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
wn42

코딩이랑 이것저것

C++/C++ 기초

[C++] 디버깅(Debugging)

2022. 12. 26. 16:53

 디버깅(Debugging) 

컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 그 원인을 밝히고 수정하는 작업 과정

 

디버깅을 왜 해야 하는가?

  • "버그가 없는 프로그램은 없다."
  • 디버그는 개발자가 작성한 코드가 제대로 동작되는 지(주로 논리적인 오류) 검증하는 기초적인 단계이다.
  • 디버깅은 프로그래머가 프로그램 코드를 만드는 과정에서 미처 고려하지 못한 부분이나 실수를 찾는 것이기 때문에 굉장히 어려운 작업이다.
  • 버그의 악영향에 따라 단순한 불편부터 크게는 형사 처벌, 사망 사고에 이르기까지 매우 다양한 문제가 발생하므로, 디버깅 과정은 프로그램을 배포하기 이전에 필수적으로 이루어져야 한다.

 

디버깅 방법

  • F10을 누르면 디버깅 모드로 진입할 수 있다.
  • 이후 F10을 누르면서 코드를 한 줄씩 실행한다.
  • 아래의 단순한 대입 및 덧셈 코드를 디버깅하겠다.
#include <iostream>

int main() {
	int a, b, c;
	a = 100;
	b = 200;
	c = a + b;

	std::cout << a << " + " << b << " = " << c << std::endl;
	return 0;
}

 

1. F10 누르기 (프로시저 단위로 실행)

  • F10을 누르면 왼쪽에 노란색 화살표가 생긴다.
  • 화살표는 F10 입력 후 실행될 코드의 위치를 나타낸다.

 

2. int a, b, c;

  • F10을 누르면 코드 한 줄이 실행된다.
  • a, b, c라는 정수형 변수가 선언되며, 왼쪽 하단에서 해당 변수에 어떠한 값이 대입되어 있는지 확인할 수 있다.
  • 현재 초기화를 안한 상태이기 때문에 쓰레기값이 들어가 있음을 알 수 있다.

 

3. a = 100;

  • a = 100 이라는 대입식에 의해 a에는 값 100이 대입되었음을 알 수 있다.

 

4. b = 200;

  • b = 200 이라는 대입식에 의해 b에 값 200이 대입되었다.

 

5. c = a + b;

  • c = a + b = 100 + 200 이라는 식에 의해 c에 300이 대입되었다.

 

6. cout 문

  • cout에 의해 a, b, c 값이 출력되었다.

 

7. 끝

  • return을 지나 디버깅이 완료되었다.

 

이처럼 모든 코드를 작성하고나면 코드가 제대로 동작되는지 확인하는 디버깅 과정이 필요하다.

    'C++/C++ 기초' 카테고리의 다른 글
    • [C++] 구조체(Struct)
    • [C++] typedef
    • [C++] 함수(Function)
    • [C++] 포인터와 배열
    wn42
    wn42
    코딩이랑 이것저것 하는 블로그

    티스토리툴바