在使用LLDB中的print和expression命令時,可以動態(tài)修改某個變量的值,這種特性在調(diào)試過程中非常有用。
動態(tài)修改變量的值
使用expression命令可以動態(tài)的為某個變量進行賦值/改變值。如下圖所示,在圖示斷點處執(zhí)行expression a = 101.0 ,程序繼續(xù)運行后,打印出來a的值為101.0,而非100.0。


需要特別注意的是,當執(zhí)行expression賦值后,系統(tǒng)會打印出(CGFloat)$0 = 101,在LLDB中變量前面都需要添加$作為前綴。在該例子中,后續(xù)可以使用$0來帶代替a。例如,可以進行如下運算,得到的值會自動付給新的變量$1

動態(tài)添加新的變量
使用expression命令可以動態(tài)添加新的變量,如下圖所示,添加了一個名稱為b的int型變量,需要注意的是,在LLDB中動態(tài)添加變量,需要在變量的前面添加$符號。

新添加的變量b可以直接與其他變量進行計算操作,如下圖所示。

另外,對于代碼中定義的變量,可以通過print 變量名來查看變量的別名。如上圖所示,系統(tǒng)中定義的變量a的別名是$1, 后續(xù)可以直接使用$1在LLDB中參與運算。
更多iOS開發(fā)教程,歡迎訪問我的博客:www.99ios.com