티스토리 뷰

발생일: 2016.03.11

키워드: xcode, lldb, lldb command, gdb, gdb command, 디버그 콘솔 명령, 디버그 콘솔 커맨드, debug console command, debugging console, 디버깅 콘솔, 디버깅 단축키, 디버그 콘솔 단축키, debug console shortcut

문제:
Xcode의 디버그 콘솔을 키보드로 컨트롤하려고 한다.


해결책:



디버그 콘솔
Cmd + Shift + C: 콘솔로 포커스
Cmd + K: 콘솔 초기화


실행 관련 커맨드
s: step in
n: next, step over
fin: finish, Step out
c: continue, 다음 브레이크포인트로 진행


스택 프레임 이동
bt: print backtraces, 전체 스택 프레임 출력
bt 3: 특정 개수까지의 스택 프레임만 출력
up: 상위 스택 프레임으로
do: down, 하위 스택 프레임으로
f 0: f 1: 과 같이 특정 스택 프레임으로 이동할 수 있다


변수 확인
fr v: 프레임의 모든 로컬 변수 보기
fr v 변수명: 현재 스택 프레임의 로컬 변수 출력
ta v 변수명: 전역 변수 출력 (fr v 로도 출력되기는 함)

p: print, 프리미티브 타입 값 출력
po: print object, 객체의 description 메서드 호출 결과 출력


표현식
expr 명령으로 표현식으로 명령을 실행할 수 있음
실행한 값은 $[0-9]+ 패턴에 할당됨 (p, po 도 마찬가지)

expr [type] $[variable name] = [value]

예) expr 로 출력하기
(lldb) expr NSString *$foo = @"fooValue"
(lldb) po $foo


예) expr과 po의 차이
(lldb) expr arr
(__NSArrayM *) $2 = 0x00007fa450477460 @"100 objects"

(lldb) po $2 # po는 description 의 결과
(lldb) po $2[3]


주의:
lldb 에서는 macro 나 enum 은 출력되지 않는다.
해결 방법은 지난 포스트를 참고하면 된다.



참고:
Using the debugger console lldb in Xcode

LLDB Tutorial

GDB TO LLDB Command map

MDL LLDB Quick Start Guide

반응형
댓글
공지사항