xcode調(diào)試技巧

Xcode調(diào)試技巧之:LLDB


Xcode調(diào)試技巧之:LLDB

1.輸出視圖層級(jí)關(guān)系(這是一個(gè)被隱藏的命令):
po [[self view] recursiveDescription]
2.輸出對(duì)象的屬性,重寫debugDescription,可以利用runtime動(dòng)態(tài)獲取屬性并返回
3.call:執(zhí)行一段代碼
call NSLog(@"%@", @"yang")
4、expr:動(dòng)態(tài)執(zhí)行指定表達(dá)式
expr i = 101
輸出:(int)$0 = 101

5、bt:打印當(dāng)前線程堆棧信息
bt all
6、image:常用來(lái)尋找棧地址對(duì)應(yīng)代碼位置:
舉個(gè)例子:
應(yīng)用場(chǎng)景(數(shù)組越界)模擬代碼:

NSArray *array = @[@"yang",@"she",@"bing"];
NSLog(@"%@",array[3]);

錯(cuò)誤信息如下:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 3 beyond bounds [0 .. 2]'

*** First throw call stack:
(
0   CoreFoundation                      0x000000010579734b __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x00000001051f821e objc_exception_throw + 48
2   CoreFoundation                      0x00000001056d1eeb -[__NSArrayI objectAtIndex:] + 155
3   BGMultimediaDemo                    0x0000000104c25550 -[ViewController viewDidLoad] + 192
4   UIKit                               0x0000000105d5c06d -[UIViewController loadViewIfRequired] + 1258
......
......
......
21  BGMultimediaDemo                    0x0000000104c25adf main + 111
22  libdyld.dylib                       0x000000010857268d start + 1
23  ???                                 0x0000000000000001 0x0 + 1

)

libc++abi.dylib: terminating with uncaught exception of type NSException

這個(gè)時(shí)候我們?nèi)绻麘岩沙鲥e(cuò)的地址是0x0000000104c25550,那么我們可以使用下面命令來(lái)找出錯(cuò)誤代碼的位置:
image lookup --address 0x0000000104c25550
執(zhí)行命令后輸出結(jié)果如下:

Address: BGMultimediaDemo[0x0000000100001550] (BGMultimediaDemo.__TEXT.__text + 192)
Summary: BGMultimediaDemo`-[ViewController viewDidLoad] + 192 at ViewController.m:30

從上面輸出結(jié)果中可以看出,錯(cuò)誤位置應(yīng)該是ViewController.m文件中的30行。是不是超級(jí)好用?反正我覺(jué)得好用。

Xcode斷點(diǎn)技巧:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Xcode 中的調(diào)試技巧與我們的日常開發(fā)息息相關(guān),而這些調(diào)試技巧在我們解決Bug時(shí),常常有事半功倍的作用,經(jīng)常會(huì)用...
    咖啡綠茶1991閱讀 501評(píng)論 0 1
  • 劍未配好,出門已是江湖。 最近一直沒(méi)有更新簡(jiǎn)書是因?yàn)樵陂_發(fā)和測(cè)試階段,有任務(wù),沒(méi)有進(jìn)行學(xué)習(xí),不過(guò)在做任務(wù)的時(shí)...
    和玨貓閱讀 8,495評(píng)論 9 75
  • 前言 Xcode調(diào)試(debug)是每位IOS開發(fā)者經(jīng)常做的事,很基礎(chǔ)也很重要,學(xué)到一些調(diào)試技巧無(wú)疑會(huì)給工作帶來(lái)很...
    xmy1012閱讀 1,741評(píng)論 0 1
  • 作者原文鏈接:點(diǎn)這里 一、普通操作: 1.打斷點(diǎn) 當(dāng)然也還可以監(jiān)視某個(gè)變量! 在對(duì)象視圖中,右鍵某個(gè)對(duì)象,點(diǎn)擊“W...
    DestinyFighter_閱讀 1,815評(píng)論 0 4
  • 同標(biāo)題
    移動(dòng)實(shí)驗(yàn)站閱讀 304評(píng)論 0 0

友情鏈接更多精彩內(nèi)容