LLVM, LLDB

나이든별 / Oldstar·2022년 6월 27일
0

Think about Keywords

목록 보기
25/37

공부한 것

  • LLVM / LLDB

고민한 점 및 생각해본 점

  • 먼저 11데시벨인 줄 알았던 과거의 나..
  • LLDB는, LLVM 위에서 사용하는 디버깅 툴이다. 세세한 사용법은 LLDB 공식 문서에 나와 있으니까.
  • LLVM은 오픈 소스 컴파일러이다. 컴파일러란, 사람이 다양한 언어로 작성한 코드를 컴퓨터가 알아들을 수 있는 언어로 변환해주는 것이다.
  • 여기서 사람이 작성한 코드를 원시 코드, 컴퓨터가 알아듣는 코드를 목적 코드라고 한다. 원시 코드 == Source Code.
  • 그럼 왜 LLDB가 필요할까? 내가 다루고 있는 Swift는 컴파일 언어이기 때문이다.. 라고 생각된다.
  • 컴파일 언어, 바이트코드 언어, 인터프리터 언어의 세 가지 종류가 있다.
    • 컴파일 언어는 먼저 빌드하고 사용자에게 배포한다. 실행 속도가 빠르지만, 수정 사항의 반영이 느리다.
    • 인터프리터 언어는 소스 코드를 그대로 공개하고, 사용자의 컴퓨터에서 컴파일한다. 수정 사항의 반영이 빠르나, 컴파일 등을 할 때 사용자 컴퓨터의 자원을 소모한다.
    • 바이트코드 언어는 두 가지 언어의 장점을 계승하고자 공용어로만 작성해두고 아키텍처마다 빌드를 새로 짠다. 그러나 두 언어의 단점도 부분적으로 계승하게 된다..
  • Swift는 컴파일 언어라, 매번 배포 전에 빌드를 해야 한다. 프로젝트가 커지면, 빌드 한 번에 시간이 오래 걸린다.
  • 이 과정에서 버그를 잡기 위해 매번 빌드를 진행해야 한다면 생각보다 많은 시간의 누수가 발생하고, 이는 효율성의 저하로 이어진다.
  • LLDB expression을 제대로 사용할 수 있으면, 엄청 빌드 시간을 아낄 수 있다. 생산성이 대단히 올라가기 때문에, 명령어를 의지적으로 익혀 보자.

참조

profile
함께 나아가고자 하는 사람

0개의 댓글