[CS50] 컴파일링 & 디버깅

choimarmot·2024년 1월 28일
0

[CS50] 컴퓨터 과학

목록 보기
8/8
post-thumbnail

코드의 동작 원리와 디버깅


#include <stdio.h>

int main(void)
{
	printf("hello, world\n");
}

위 코드를 실행하려면 make 또는 clang을 사용해서 컴파일을 해야한다.

컴파일의 실행 단계

  • 전처리(Precompile)
  • 컴파일링(Compile)
  • 어셈블링(Assemble)
  • 링킹(Linking)

전처리(Precompile)

  • 컴파일 전 단계로 컴파일에 필요한 무언가를 실행
  • #include는 컴파일 전에 #include에서 지정하는 다른 파일의 내용을 포함시키라고 한다.

컴파일(Compile)

  • 소스 코드를 머신 코드로 바꾸는 단계
  • 코드를 아래의 어셈블리 코드로 바꾼다.

어셈블링(Assembling)

  • 어셈블리 코드를 0, 1로 이루어진 머신 코드로 변경한다.

링킹(Linking)

  • 어셈블링이 끝난 파일을 한개로 합친다.

위 네단계를 거쳐서 실행 가능한 파일이 된다.


디버깅

코드에 존재하는 버그를 식별하고 고치는 과정

  • 디버거라는 프로그램을 사용하여 버그를 찾아서 수정한다.
profile
프론트엔드 개발 일기

0개의 댓글