thread backtrace呼吁可以利便地供开拓者查察线程仓库信息,简写为bt。好比,当措施瓦解的时辰,开拓者可以查察仓库挪用列表。示譬喻下:
- (lldb) thread backtrace
- * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
- frame #0: 0x0000000104cc2705 libobjc.A.dylib`objc_exception_throw
- frame #1: 0x00000001056704ec CoreFoundation`_CFThrowFormattedException + 194
- frame #2: 0x00000001057a6b00 CoreFoundation`-[__NSArrayI objectAtIndexedSubscript:] + 96
- * frame #3: 0x00000001043a1df7 QiDebugDemo`-[QiConsoleViewController testLLDBCommands](self=0x00007fadc7c50400, _cmd="testLLDBCommands") at QiConsoleViewController.m:33
- frame #4: 0x00000001043a1d5a QiDebugDemo`-[QiConsoleViewController viewDidLoad](self=0x00007fadc7c50400, _cmd="viewDidLoad") at QiConsoleViewController.m:26
- ...
- frame #18: 0x00000001056830be CoreFoundation`__CFRunLoopDoObservers + 430
- frame #19: 0x0000000105683751 CoreFoundation`__CFRunLoopRun + 1537
- frame #20: 0x0000000105682e11 CoreFoundation`CFRunLoopRunSpecific + 625
- frame #21: 0x000000010ddd51dd GraphicsServices`GSEventRunModal + 62
- frame #22: 0x000000010a1db81d UIKitCore`UIApplicationMain + 140
- frame #23: 0x00000001043a2450 QiDebugDemo`main(argc=1, argv=0x00007ffeeb85df90) at main.m:7
- frame #24: 0x0000000107858575 libdyld.dylib`start + 1
在调试进程中,开拓者可以行使thread return呼吁终端某个要领并返回一个想要的值。示譬喻下:

- (lldb) thread return string
- (lldb) continue
- 2019-02-27 17:22:47.323225+0800 QiDebugDemo[5071:222700] resultString: Qi_Share
6. 断点
作者在iOS 调试要领:断点这篇文章中先容过断点的用法。着实,可视化的断点都可以行使LLDB语法来实现。好比下图中的1、2、3、4、5都能用LLDB呼吁表达。
- 启用/禁用断点(breakpoint enable/disable)
- 继承执行措施(continue)
- 执行下一步(next)
- 进入要领(step)
- 跳出要领(finish)
在断点相干操纵中,由于Xcode已经集成了可视化的断点操纵器材,以是breakpoint呼吁并不被常用。可是,breakpoint呼吁拥有着异常强盛的成果,语法为:breakpoint [],首要呼吁示譬喻下:
- //! 查察全部断点
- (lldb) breakpoint list
-
- //! 为全部类中的viewDidAppear:配置断点
- (lldb) breakpoint set -n viewDidAppear:
-
- //! 为QiConsoleViewController.m文件中的testLLDBCommands要领设定断点
- (lldb) breakpoint set -f QiConsoleViewController.m -n testLLDBCommands
-
- //! 为QiConsoleViewController.m文件中的第32行代码设定断点
- (lldb) breakpoint set -f QiConsoleViewController.m -l 32
-
- //! 为handleString:要领设定前提断点,前提为string != nil
- (lldb) breakpoint set - handleString: -c string != nil
7. 调查点 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|