Xcode除錯技巧之:LLDB
1、po:print object的縮寫,表示顯示物件的文字描述,如果物件不存在則列印nil
2、p:可以用來列印基本資料型別。
3、call:執行一段程式碼
call NSLog(@"%@",@"hello world");
4、expr:動態執行指定表示式
expr i = 3.14
輸出:(int)$0 = 3.14
5、bt:列印當前執行緒堆疊資訊
如果要列印所線上程堆疊資訊,使用:bt all即可。
6、image:常用來尋找棧地址對應程式碼位置:
應用場景(陣列越界)模擬程式碼:
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行
相關文章
- Xcode中使用LLDB除錯XCodeLLDB除錯
- WWDC 2018:效率提升爆表的 Xcode 和 LLDB 除錯技巧XCodeLLDB除錯
- Xcode 除錯技巧XCode除錯
- Xcode偵錯程式LLDBXCodeLLDB
- 動態除錯及LLDB技巧集合除錯LLDB
- [譯] Xcode 和 LLDB 高階除錯教程:第 3 部分XCodeLLDB高階除錯
- [譯] Xcode 和 LLDB 高階除錯教程:第 1 部分XCodeLLDB高階除錯
- LLDB除錯LLDB除錯
- LLDB+Python指令碼:增強LLDB除錯LLDBPython指令碼除錯
- Xcode 常用 LLDB 指令XCodeLLDB
- Xcode-lldb的使用XCodeLLDB
- iOS 常用除錯方法:LLDB命令iOS除錯LLDB
- vscode + ziglang + lldb windows下無法除錯VSCodeLLDBWindows除錯
- Xcode動態除錯原理XCode除錯
- Xcode Debug除錯彙總XCode除錯
- debug技巧之使用Arthes除錯除錯
- debug技巧之遠端除錯除錯
- Postman除錯技巧之介面簽名Postman除錯
- Java安全之jar包除錯技巧JavaJAR除錯
- Xcode10.2中LLDB增加的新特性XCodeLLDB
- # Xcode 編譯器除錯命令(所有)XCode編譯除錯
- Xcode Instruments除錯swift入門教程XCode除錯Swift
- console 除錯技巧除錯
- Chrome 除錯技巧Chrome除錯
- css除錯技巧CSS除錯
- 前端入門技巧之瀏覽器除錯前端瀏覽器除錯
- iOS xcode9.3 pod 刪除框架之後,clang報錯:not found框架iOSXCode框架
- 前端js除錯技巧前端JS除錯
- VC++除錯技巧C++除錯
- chrome的除錯技巧Chrome除錯
- JavaScript 反除錯技巧JavaScript除錯
- docker 容器除錯技巧Docker除錯
- Xcode斷點除錯出現的問題XCode斷點除錯
- .NET8頂級除錯lldb觀察FOH堆字串分配除錯LLDB字串
- React Native / React除錯技巧React Native除錯
- 5 個 JavaScript 除錯技巧JavaScript除錯
- debug技巧之本地除錯除錯
- k8s之mutating webhook + gin(附加除錯技巧)K8SWebHook除錯