[Xcode] LLDB 유용한 명령어 모음

PO

  • 객체의 description 메서드 호출
  • 오브젝트를 반환 해주는 expression 명령어와 함께 사용 할 수 있다.

P

  • Primitive 값을 출력할 수 있다.
  • Primitive 값을 반환 해주는 expression 명령어와 함께 사용 할 수 있다.

br

  1. 브레이크 포인트 리스트 보기: br list
  2. 브레이크 포인트 삭제 하기: br delete 1
  3. 특정 브레이크 포인트 활성화 시키기: br e 1
  4. 특정 브레이트 포인트 비활성화 시키기: br di 1
  5. 동일한 메서드명을 가지고 있는 곳에 브레이트 포인트 설정하기: br set -n viewDidLoad
  6. 특정 브레이크 포인트에 조건 넣기: br mod -c “totalValue > 1000″ 3
  7. 특정 브레이크 포인트에 command 심기: br com add 2

b

  1. 브레이크 포인트 새로 만들기: b MyViewController.m:30

continue

  • 실행 재생하기

n

  • 커서 한줄 실행 시키기 (step over)
  • 단추키 F6

s

  • 커서 메서드 안에 들어가기 (step in)
  • 단추키 F7

finish

  • 커서 메소드 빠져나오기 (step out)
  • 단추키 F8

 expr -part1-

  • 런타임으로 Objective-c 코드를 실행 시켜준다.
  • [예] expr self.view.hidden = YES
  • [예] expr (void) NSLog(@”hello world”)
  • [예] expr (BOOL) [self.myArray containObject @"carKeys"]
  • [예] expr — (CGRect)[self.view frame]
  • [예] expr [self prepareForSegue:@"mySegue" sender:nil]

expr -part2-

  • 런타임에서 변수를 생성 및 조작 할 수 있다.
  • 정의하기: expr int $meaningOfLife = 42
  • 사용하기: expr 100 + $meaningOfLife
  • 예재: JSON 스트링은 오브젝트로 바꾸기
  1. expr NSString *$json = [self fetchRemoteData];
  2. expr NSData *data = [$json dataUsingEncoding:4];
  3. expr NSDictionary *$parsedDic = [NSJSONSerialization JSONObjectWithData:$data option:0 error:NULL];
  4. po parsedDic

bt

  • back trace: 브레이크 포인트를 통해 멈춰진 곳이 어떤 경로를 통해 불렸는지 보여주고, 각 단계를 왔다 갔다 할 수 있는 기능
  • 모든 thread의 back-trace를 보고 싶을 때: bt all

thread

  • Thread 정보에 대해서 알려준다. 하지만 한번에 한 Thread에서 작업 할 수 있다.
  • 불린 값으로 메소드 반환하기: thread return YES (또는) NO
  • back-trace: thread backtrace
  • 다 보기: thread all
  • 목록 보기: thread list
  • 이동하기: thread select 24
  • 브레이크 포인트 처럼 작동하기: thread until 100

frame

  • 로컬 변수 살펴보기: frame variable self
  • 정보 보기: frame info
  • 직접 이동하기: frame select 2
  • 상대 이동하기: frame -r -1

watchpoint

  • 특정한 변수 값이 변할 때 마다 실행 멈추고 값 보기
  • 리스트 보기: watchpoint list
  • 삭제: watchpoint delete 1
  • 설정하기: watchpoint set variable _x
  • watchpoint set expression — my_point
  • 조건넣기: watchpoint modify — -c “_x < 0″ 1
  • 조건 없애기: watchpoint modify -c “” 1

script

  • LLDB에는 파이썬 언어 해석기가 포함되어 있다. 그리고 브레이크 포인트에서 스크립트를 실행 시킬수 있다.
  • 실시간 파이썬 실행하기: script
  • 브레이크 포인트에 파이썬 심기: br command add -s python  1
  • 브레이크 포인트에 command 삽입하기: breakpoint command add -f my.breakpoint_func

command

  • 현존하는 스크립트를 심을 수 있다.
  • 임포트하기: command script import ~/my_script.py
  • 추가하기: command script add -f my_script.python_function cmd_name
  • 히스토리 보기: command history
  • 디버깅 스크립트 임포트하기: command import ~/my_lldb.txt