lldb命令常用(備忘)
假如你準備在模擬器裡面執行這個,你可以在「(lldb)」提示的後面輸入下面的:
(lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是「(gdb)」提示,而不是「(lldb)」提示的話,你也能夠更隨一起做,而沒有問題。lldb
)po $eax
「po」命令是「print object」(列印物件)的簡寫。「$eax」是cup的乙個暫存器。在乙個異常的情況下,這個暫存器將會包含乙個異常物件的指標。注意:$eax只會在模擬器裡面工作,假如你在裝置上除錯,你將需要使用」$r0″暫存器。
例如,假如你輸入:
(你將會看像這樣的東西:lldb
)po
[$eax
class
]
(id)這些數字不重要,但是很明顯的是你正在處理的n***ception物件在這裡。$2 =
0x01446e84
n***ception
你可以對這個物件呼叫任何方法。例如:
(這個將會輸出這個異常的名字,在這裡是nsinvalidargumentexception,並且:lldb
)po
[$eax name
]
(這個將會輸出錯誤訊息:lldb
)po
[$eax reason
]
(unsigned
int)
$4 =
114784400
receiver
()has
nosegue
with
identifier
'modalsegue'
注意:當你僅僅使用了「po $eax」,這個命令將會對這個物件呼叫「description」方法和列印出來,在這個情況下,你也會得到錯誤的訊息。
實用lldb命令
命令名 用法 說明
expr
expr 表示式
可以在除錯時動態執行指定表示式,並將結果列印出來,很有用的命令。
popo 表示式
與expr類似,列印物件,會呼叫物件description方法。是print-object的簡寫
print (type) 表示式
也是列印命令,需要指定型別。
btbt [all]
列印呼叫堆疊,是thread backtrace的簡寫,加all可列印所有thread的堆疊。
br l
br l
是breakpoint list的簡寫
process continue l
process continue
簡寫:c
thread step-in l
thread step-in l
簡寫:s
thread step-inst l
thread step-inst l
簡寫:si
thread step-over l
thread step-over l
簡寫:n
thread step-over-inst l
thread step-over-inst l
簡寫:ni
thread step-out l
thread step-out l
簡寫:f
thread list
thread list
簡寫:th l
除錯lldb命令常用
lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是 gdb 提示,而不是 lldb 提示的話,你也能夠更隨一起做,而沒有問題。po 命令是 print object 列...
除錯lldb命令常用
lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用的是 gdb 提示,而不是 lldb 提示的話,你也能夠更隨一起做,而沒有問題。po 命令是 print object 列...
iOS之 LLDB除錯常用命令
lldb是llvm下的偵錯程式。xcode從4.0開始編譯器開始改用llvm,相應的偵錯程式也從gdb改為lldb。1.p 用於輸出基本型別 2.po 用於輸出objective c物件 3.expr 可以在除錯動態實行指定表示式,並將結果列印出來。常用在除錯過程中修改變數的值 4.call 呼叫c...