IOS 除錯lldb命令常用 po

2021-07-03 06:23:20 字數 1895 閱讀 3421

lldb命令常用(備忘)

假如你準備在模擬器裡面執行這個,你可以在「(lldb)」提示的後面輸入下面的:

(

lldb

)po $eax

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

「po」命令是「print object」(列印物件)的簡寫。「$eax」是cup的乙個暫存器。在乙個異常的情況下,這個暫存器將會包含乙個異常物件的指標。注意:$eax只會在模擬器裡面工作,假如你在裝置上除錯,你將需要使用」$r0″暫存器。

例如,假如你輸入:

(

lldb

)po 

[$eax 

class

]

你將會看像這樣的東西:

(id)

$2 =

0x01446e84

n***ception

這些數字不重要,但是很明顯的是你正在處理的n***ception物件在這裡。

你可以對這個物件呼叫任何方法。例如:

(

lldb

)po 

[$eax name

]

這個將會輸出這個異常的名字,在這裡是nsinvalidargumentexception,並且:

(

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

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...