【工作总结】LLDB调试技巧 - 篇一

时间:2023-03-09 07:03:46
【工作总结】LLDB调试技巧 - 篇一

备忘命令 :

命令“l”可以查看程序当前运行的位置

(lldb) l

        }

        - (void)rightBarButtonAction {
            

命令“bt”也能查看程序运行的调用栈

(lldb) bt
* thread #: tid = 0x527b4, 0x000000010db858d7 iSKG`__47-[SKGOAInformationViewController loadFileData:]_block_invoke(.block_descriptor=0x00007f83dc96d5d0, responseObject= key/value pairs) + at SKGOAInformationViewController.m:, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
* frame #: 0x000000010db858d7 iSKG`__47-[SKGOAInformationViewController loadFileData:]_block_invoke(.block_descriptor=0x00007f83dc96d5d0, responseObject= key/value pairs) + at SKGOAInformationViewController.m:
frame #: 0x000000010d948b00 iSKG`__54+[AFNetworkingTool GETwithURL:params:success:failure:]_block_invoke(.block_descriptor=0x00007f83dc96d5a0, task=0x00007f83da4d3370, responseObject= key/value pairs) + at AFNetworkingTool.m:
frame #: 0x000000010d9feb21 iSKG`__55-[AFHTTPSessionManager GET:parameters:success:failure:]_block_invoke(.block_descriptor=0x00007f83dc96d500, response=0x00007f83da5c80c0, responseObject= key/value pairs, error=0x0000000000000000) + at AFHTTPSessionManager.m:
frame #: 0x000000010d8a39cb iSKG`__72-[AFURLSessionManagerTaskDelegate URLSession:task:didCompleteWithError:]_block_invoke_272(.block_descriptor=<unavailable>) + at AFURLSessionManager.m:
frame #: 0x0000000112d3fe5d libdispatch.dylib`_dispatch_call_block_and_release +
frame #: 0x0000000112d6049b libdispatch.dylib`_dispatch_client_callout +
frame #: 0x0000000112d482af libdispatch.dylib`_dispatch_main_queue_callback_4CF +
frame #: 0x000000011209a2e9 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ +
frame #: 0x000000011205b8a9 CoreFoundation`__CFRunLoopRun +
frame #: 0x000000011205ae08 CoreFoundation`CFRunLoopRunSpecific +
frame #: 0x00000001146fdad2 GraphicsServices`GSEventRunModal +
frame #: 0x000000010fe0330d UIKit`UIApplicationMain +
frame #: 0x000000010db8a14f iSKG`main(argc=, argv=0x00007fff5237e648) + at main.m:
frame #: 0x0000000112d9592d libdyld.dylib`start +
frame #: 0x0000000112d9592d libdyld.dylib`start +

检查帧参数和本地变量的最简便的方式“frame variable

(lldb) frame variable
(__block_literal_1 *) .block_descriptor = 0x00007f83dc96d5d0
(__NSCFDictionary *) responseObject = 0x00007f83dc96e390 key/value pairs
(SKGOAInformationViewController *) self = 0x00007f83da4cdce0
(__NSCFArray *) shtLists = 0x00007f83dc970910 @"1 object"
(__NSCFDictionary *) aShtDic = 0x00007f83dc9713e0 key/value pairs
(SKGOAInformationFileModel *) file = nil