Apr 15, 2021, TIL (Today I Learned) - LLDB 간략정보

Inwoo Hwang·2021년 8월 26일
0
post-thumbnail

수업내용


Low-Level Debugging [LLDB]

디버깅이란?

시스템의 오류랑 벌레잡기

Compile? Build?

Build: 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정

아래와 같은 일련의 과정을 거쳐서 빌드를 한다.

Screen Shot 2021-04-15 at 10 27 03 AM

Compile:

  • Compiler가 우리가 작성한 코드를 컴퓨터가 읽을 수 있는 언어로 변환 해 주는 작업.
  • 원시코드[Swift]

Link: Module사이에 서로 연결되는 지점을 연결시켜주는 작업을 Linker가 한다.

프로그래밍 언어의 분류

기계어 번역 방식에 따른

  • 컴파일 언어
    • C, C++, Go..
    • 통번역된 컴퓨터 언어 [바로 실행 가능]
    • 매우매우 성능이 좋고 빠르다.
    • 운영체제에 따라 다른 컴파일 언어를 가지고 있다.
    • 해당 프로그램에 버그가 있는 경우 전반적인 패치 후 재배포를 해줘야 한다.
  • 바이트코드 언어
    • Java, C#
    • 컴파일을 거치다 중간 언어로 한 번 컴파일하게 된다. 그리고 이것을 배포하면 컴퓨터에서는 해당 중간 언어를 컴파일 언어로 번역을 하는 가상머신을 설치하게 된다.
    • 장점: 이식성이 좋다. 한 번 배포로 시스템에서 사용할 수 있게 된다.
  • 인터프리터 언어 [실행시 컴파일을 안하고 즉석에서 번역이 가능한 언어]
    • BASIC, JavaScript, Python, Ruby
    • 웹사이트에서 쓰기 간편한 언어
    • 느리다는 단점이 존재한다.

GCC

GNU, Compiler, Collection

LLVM

Screen Shot 2021-04-15 at 11 17 23 AM

compiler 패키지.

프로그래머가 원하는 언어로 작업을 한 뒤 번역하고자 하는 아키텍처에 해당되는 컴퓨터 언어로 변환이 가능해졌다.

LLDB

LLVM의 앱을 디버깅하는 툴

profile
james, the enthusiastic developer

0개의 댓글