Xcode 디버그 팁: LLDB

2000 단어
1. po:printobject의 줄임말로 대상의 텍스트 설명을 표시하고 대상이 존재하지 않으면 nil을 출력합니다
2,p: 기본 데이터 형식을 인쇄할 수 있습니다.
3,call:코드 실행
call NSLog(@"%@",@"hello world");

4.expr:동적 실행 지정 표현식
    expr i = 3.14
     :(int)$0 = 3.14

5, bt: 현재 스레드 창고 정보를 인쇄합니다. 만약 현재 스레드 창고 정보를 인쇄하려면: bt all를 사용하면 됩니다.
6. 이미지: 창고 주소에 대응하는 코드의 위치를 찾는 데 자주 사용된다.
장면(배열 오버라인) 아날로그 코드를 적용하려면 다음과 같이 하십시오.
NSArray *array = @[@" ",@" ",@" "];
NSLog(@"%@",array[3]);

오류 메시지는 다음과 같습니다.
*** Terminating app due to uncaught exception
'NSRangeException'
, reason:
'*** -[__NSArrayI objectAtIndex:]: index 3 beyond bounds [0 .. 2]'
*** First
throw
call stack:
(
0   CoreFoundation                      0x000000010579454b     __exceptionPreprocess + 172
1   libobjc.A.dylib                     0x00000001561f821e objc_exception_throw + 47
2   CoreFoundation                      0x00000001087d1eeb -[__NSArrayI objectAtIndex:] + 153
3   BGMultimediaDemo                    0x0000000104c25350 -[ViewController viewDidLoad] + 193
4   UIKit                               0x0000000105d5306d -[UIViewController loadViewIfRequired] + 1245
......
......
......
21  BGMultimediaDemo                    0x0000000104c35adf main + 111
22  libdyld.dylib                       0x000000010857264e start + 1
23  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating
with
uncaught exception of type NSException

오류가 발생할 수 있는 주소: 0x0000000104c25350에서 다음 명령을 사용하여 오류 코드의 위치를 찾을 수 있습니다.
image lookup --address 0x0000000104c25350

명령을 실행한 후 출력된 결과는 다음과 같습니다.
Address: BGMultimediaDemo[0x0000000100001450]   (BGMultimediaDemo.__TEXT.__text + 184)
Summary: BGMultimediaDemo`-[ViewController viewDidLoad] + 188 at ViewController.m:15

위의 출력 결과에서 알 수 있듯이 잘못된 위치는 ViewController입니다.m 파일의 15행

좋은 웹페이지 즐겨찾기