LLDB 除錯常用命令

2021-06-21 11:08:01 字數 1997 閱讀 8433

當前lldb版本:

(lldb) version

lldb-320.4.160

分享下本人常用的lldb命令:p *、bt、help

1. p *  設定斷點後,p*

命令會檢視相應物件在記憶體中的結構,

示例:

(lldb) p *_netmanager

(networkmanager) $13 =

_requrlstack = 0x000000017005d4c0 @"1 object"

_paramsdic = 0x00000001701bd7a0 8 key/value pairs

_activereqmethod = 0x0000000170057e80 @"store.goodsorder.list&"

_nosignparamsdic = nil

_responsedic = 0x000000017005d460 1 key/value pair

_responsearray = 0x000000017005d490 @"0 objects"

}

(lldb) p *_netmanager.paramsdic

(nsdictionary) $14 =

[1] =

[2] =

po即print object,相當於exp -o,列印物件。

p即print,又相當於express --;

2. bt:命令會自動輸出最後的一次呼叫堆疊,示例:

(lldb) bt

frame #1: 0x0000000186f9da14 foundation`nskeyvaluenotifyobserver + 340

frame #2: 0x0000000186f9d534 foundation`nskeyvaluedidchange + 460

frame #3: 0x0000000186f86ac4 foundation`-[nsobject(nskeyvalueobservernotification) didchangevalueforkey:] + 116

frame #4: 0x00000001002e8e30 libdispatch.dylib`_dispatch_call_block_and_release + 24

frame #5: 0x00000001002e8df0 libdispatch.dylib`_dispatch_client_callout + 16

frame #6: 0x00000001002ed75c libdispatch.dylib`_dispatch_main_queue_callback_4cf + 1056

frame #7: 0x0000000186159fa4 corefoundation`__cfrunloop_is_servicing_the_main_dispatch_queue__ + 12

frame #8: 0x000000018615804c corefoundation`__cfrunlooprun + 1492

frame #9: 0x00000001860850a4 corefoundation`cfrunlooprunspecific + 396

frame #10: 0x000000018f2275a4 graphicsservices`gseventrunmodal + 168

frame #12: 0x00000001000db0bc emallstore`main(argc=1, argv=0x000000016fd3ba58) + 116 at main.m:16

frame #13: 0x0000000196f6ea08 libdyld.dylib`start + 4

3. help

help +命令:會展示該命令的詳細用法

4. express:可以在lldb中動態執行表示式,不僅會改變偵錯程式中的值,也會改變實際的值。比如用以改變某控制項的背景。

lldb 除錯常用命令

lldb lldb lldb lldb 設定入口 lldb b nsobject init breakpoint 1 where libobjc.a.dylib nsobject init address 0x000000000000a3a8給某個方法下斷點 breakpoint 4 55 loca...

iOS之 LLDB除錯常用命令

lldb是llvm下的偵錯程式。xcode從4.0開始編譯器開始改用llvm,相應的偵錯程式也從gdb改為lldb。1.p 用於輸出基本型別 2.po 用於輸出objective c物件 3.expr 可以在除錯動態實行指定表示式,並將結果列印出來。常用在除錯過程中修改變數的值 4.call 呼叫c...

除錯lldb命令常用

lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是 gdb 提示,而不是 lldb 提示的話,你也能夠更隨一起做,而沒有問題。po 命令是 print object 列...