[LLDB] Low-Level-Debugger

코르피·2022년 10월 1일
0

LLDB란?

swift 는 컴파일 언어다.
먼저 컴파일이란 무엇일까?
고수준의 언어를 저수준의 언어로 번역하는 과정이다.

LLDB는 Low-Level Debugger 이다.
Mac에서 기본적으로 장착된 디버거이다.

왜 사용하는가?

iOS 개발자들에게는 빌드 눌러놓고 커피한잔하고
축구한번 하고 점심먹은뒤에 운동장 산책 한바퀴 하고 오면 빌드가 거의완료되었다는 그런 우스갯소리가 있다.

빌드가 오래걸려서 답답함을 느낀 개발자가 많다는 얘기인 것 같다.
이런 상황에서 print문을 찍는다면? 여간 답답한게 아닐 것 같다.

그럴 때를 대비해서 빌드를 한번만 하고 디버거를 통해서 출력을 확인하고
코드를 수정할 수 있다면 좀 더 편할 것이다.

사용 방법

브레이크 걸기

함수 이름에 걸기

  • breakpoint set --name 함수명
  • br s n 함수명
  • b 함수명

라인에 걸기

  • breakpoint set --file 파일명
  • b 파일명:라인넘버
  • b 라인넘버

list 파일명
b 라인넘버
이렇게도 걸 수 있는데 좀 더 편한 듯 하다.

조건에 따라 브레이크 걸기

  • br s -n 함수명 -c '조건문'
  • br s -f 파일명 -l 라인넘버 -c '조건' -C '조건에 따라 실행할 명령'

조건에 따라 걸 경우에는 br s 을 사용해야한다.
break 명령으로 거는 법도 있는데 잘 안되는 듯..

임시로 걸기

걸어두면 최초로 한번만 break하고 없어진다.

  • tbreak
  • 함수 이름에 걸거나(e.g., tbreak viewDidLoad) 라인에 걸 수 있다.(e.g., tbreak 12)

변수 관련 명령

변수 생성하기

  • p var $foo = 5
  • var 와 $를 꼭 붙여줘야 한다.

변수 출력하기

  • p 변수명
  • po 변수명

변수 바꾸기

  • po '변수명' = '값'
  • p var 를 통해 생성된 변수는 immutable 이다
profile
행복합시다!!

0개의 댓글