lldb / 디버깅

zoe·2021년 11월 15일
0

IOS

목록 보기
1/2
post-custom-banner

디버깅이란?

‘디버깅’이라는 용어는 여러 다양한 것을 의미할 수 있지만 대부분의 경우 코드에서 버그를 제거하는 것을 의미합니다

디버깅하는 방법

  • print문 찍어보기
  • break point 걸어보기

컴파일 vs 빌드

  • 컴파일: 코드변환 / 컴퓨터 언어로 변환하는 과정 / low-level 언어로 변환
  • 빌드: 실행파일 생성 / 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정

과정

전처리 -> 컴파일 -> 링크 -> 빌드

컴파일

언어 -> 언어
원시코드(소스코드) -> 목적코드


컴파일언어

  • 빌드시점에 모두 컴파일되어서 나오는 언어
  • 타겟별로 모두 따로 컴파일 & 빌드 되어있어야 한다
  • C, C++, Swift

장점) 실행속도가 빠르다
단점) 버그가 터졌을 때 빨리 대응하기 어렵다

인터프리터언어

  • 코드를 실행할때마다 번역이 이루어지는 언어
  • 번역해주는 친구만있으면(브라우저) 어디에서든 사용할 수 있다
  • Python, Ruby, JavaScript

장점) 개발자가 실수해도 3초만에 고칠 수 있다
단점) 실시간 번역을 해야하기때문에 속도가 느리다

바이트코드 언어

  • 속도도 빨리 내고싶고, 어디에서든지 쓰이고 싶다
  • 컴파일을 거쳐서 중간언어로 바꾸고 중간언어를 배포
  • 중간언어를 해석할 수 있는 친구만 있으면 어디에서든지 사용가능
  • Java, C#

swift는 왜 컴파일 언어를 사용하는가?

가벼운 언어는 인터프리터 언어로 만들어도 됨


GCC

GNU Compiler Collection
다양한 오픈소스들에 컴파일러를 제공해주는
"컴파일러 갖다쓸거면 너네코드도 공개해!"

llvm

중간번역기
LLVB 형태로 바꿔주면 컴파일 가능하도록 만든 시스템

lldb

LLVM front-end debugger
우리가 작성한 코드를 LLVM 프로토콜에 맞게 번역하는중 발생하는 오류를 잡기위한 도구?


학습활동

축약 표현

https://s3.ap-northeast-2.amazonaws.com/media.yagom-academy.kr/resources/6152f8d7ccd9ef11a51aee5d/6191c77f143f8b5487805f91.png

파일의 라인에 브레이크포인트 걸기

AA.swift 파일의 23번째 줄에 브레이크 포인트를 설정
breakpoint set --file AA.swift --line 23
(축약형 👉🏻 br s -l 23)
https://s3.ap-northeast-2.amazonaws.com/media.yagom-academy.kr/resources/6152efbaccd9ef11a51aee4f/6191c2e4143f8b5487805f7a.png

exampleMethod라는 심볼에 브레이크 포인트를 설정

br -M exampleMethod

뷰의 오토레이아웃 제약을 확인하는 방법

po view.constraints

뷰의 색상 변경하기

po view.backgroundColor = .systemPink

profile
개발하면서 마주친 문제들을 정리하는 공간입니다.
post-custom-banner

0개의 댓글