lldb常用命令

LLDB命令的語法有其通用結(jié)構(gòu)近速,通常是以下形式的:
<command></command>[<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]</action></subcommand></subcommand>
其中:
(命令)和(子命令):LLDB調(diào)試命令的名稱低缩。命令和子命令按層級(jí)結(jié)構(gòu)來排列:一個(gè)命令對(duì)象為跟隨其的子命令對(duì)象創(chuàng)建一個(gè)上下文,子命令又為其子命令創(chuàng)建一個(gè)上下文涩禀,依此類推料滥。

LLBD命令行的解析操作在執(zhí)行命令之前完成。上面的這些元素之間通過空格來分割艾船,如果某一元素自身含有空格葵腹,則可以使用雙引用。而如果元素中又包含雙引號(hào)屿岂,則可以使用反斜杠践宴;或者元素使用單引號(hào)。如下所示:
(lldb) command [subcommand] -option "some \"quoted\" string"
(lldb) command [subcommand] -option 'some "quoted" string'

一般開發(fā)時(shí)候用的最多的情況應(yīng)該就是打斷點(diǎn)爷怀,然后打印當(dāng)前變量的值了吧阻肩。
打斷點(diǎn)的命令就不說了,反正大多數(shù)人都是直接在代碼里面添加斷點(diǎn)的运授】揪基本打印變量的值比較常見的就這幾個(gè)命令print、po吁朦、frame柒室、exp。

  • print 該命令可以用來打印基本類型(int之類的)逗宜,如果打印的是對(duì)象雄右,還會(huì)打印出對(duì)象的指針地址
  • po 這個(gè)是print object命令的縮寫,僅僅是用來打印對(duì)象的值纺讲,但是用的最多
  • exp 該命令不僅有print類似的功能擂仍,而且它還能改寫對(duì)象的值,多數(shù)用在測(cè)試數(shù)據(jù)的時(shí)候修改傳入的參數(shù)刻诊。
  • frame 該命令我用的比較少防楷,知道的僅有frame variable命令可以打印變量的值牺丙,以及frame select命令可以打印出當(dāng)前的代碼幀则涯。有興趣的可以自行查閱

不知道蘋果是不是優(yōu)化了模擬器复局,以前使用exp self.view.backgroundColor = [UIColor greenColor]改變背景顏色的時(shí)候,還需要加exp (void)[CATransaction flush]命令才能生效粟判,現(xiàn)在用的Xcode9.3亿昏,執(zhí)行之后直接就改變了。

另外一個(gè)常用的命令是image命令

  • image list 可以打印出工程中使用的庫
  • image lookup --address 后面帶上崩潰的內(nèi)存地址档礁,可以具體定位到具體崩潰的代碼位置
一些好玩的方法

1角钩、push一個(gè)控制器
首先獲取導(dǎo)航控制器
exp id $nvc = [[[UIApplication sharedApplication] keyWindow] rootViewController]
然后創(chuàng)建一個(gè)新的控制器
exp id $vc = [UIViewController new]
為新的控制器設(shè)計(jì)背景色
exp (void)[[$vc view] setBackgroundColor:[UIColor yellowColor]]
最后跳轉(zhuǎn)該控制器
exp (void)[$nvc pushViewContoller:$vc animated:YES]
(在Xcode9.3的時(shí)候,輸入完上述命令繼續(xù)運(yùn)行就會(huì)直接跳轉(zhuǎn)呻澜,如果沒有递礼,那么請(qǐng)?jiān)诤竺嫣砑?code>exp (void)[CATransaction flush]命令吧)

一些問題
不明類型或類型不匹配

p NSLog(@"%@",[self.view viewWithTag:1001])
error: 'NSLog' has unknown return type; cast the call to its declared return type
如果在使用LLDB命令中發(fā)現(xiàn)有 unknown type 的類似錯(cuò)誤(多見于id類型,比如NSArray中某個(gè)值)羹幸,那我們就必須顯式聲明類型脊髓。比如上面這個(gè)命令,我們得這么修改栅受。
p (void)NSLog(@"%@",[self.view viewWithTag:1001])
這樣就能得到正確的結(jié)果了将硝。 另外,lldb是不支持宏的屏镊,需要我們自己替換依疼。

找不到方法

常見于輸出frame的時(shí)候。比如你可能會(huì)得到以下的錯(cuò)誤信息:
po self.view.frame
error: unsupported expression with unknown type
這似乎是lldb的一個(gè)bug而芥,無法通過點(diǎn)屬性訪問的方法打印framework里面的對(duì)象律罢,但是自己在app里面定義的就可以。我們把上面的命令改動(dòng)一下:
p (CGRect)[self.view frame]
就可以了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棍丐,一起剝皮案震驚了整個(gè)濱河市弟翘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骄酗,老刑警劉巖稀余,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異趋翻,居然都是意外死亡睛琳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門踏烙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來师骗,“玉大人,你說我怎么就攤上這事讨惩”侔” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵荐捻,是天一觀的道長(zhǎng)黍少。 經(jīng)常有香客問我寡夹,道長(zhǎng),這世上最難降的妖魔是什么厂置? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任菩掏,我火速辦了婚禮,結(jié)果婚禮上昵济,老公的妹妹穿的比我還像新娘智绸。我一直安慰自己,他們只是感情好访忿,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布瞧栗。 她就那樣靜靜地躺著,像睡著了一般海铆。 火紅的嫁衣襯著肌膚如雪沼溜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天游添,我揣著相機(jī)與錄音系草,去河邊找鬼。 笑死唆涝,一個(gè)胖子當(dāng)著我的面吹牛找都,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播廊酣,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼能耻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了亡驰?” 一聲冷哼從身側(cè)響起晓猛,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凡辱,沒想到半個(gè)月后戒职,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡透乾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年洪燥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乳乌。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捧韵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汉操,到底是詐尸還是另有隱情再来,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布磷瘤,位于F島的核電站芒篷,受9級(jí)特大地震影響搜变,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梭伐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仰担。 院中可真熱鬧糊识,春花似錦、人聲如沸摔蓝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贮尉。三九已至拌滋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猜谚,已是汗流浹背败砂。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留魏铅,地道東北人昌犹。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像览芳,于是被迫代替她去往敵國和親斜姥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • LLDB是個(gè)開源的內(nèi)置于XCode的調(diào)試工具沧竟,這里來理一理常用用法铸敏。lldb對(duì)于命令的簡(jiǎn)稱,是頭部匹配方式悟泵,只要不...
    小小棒棒糖閱讀 14,848評(píng)論 6 94
  • 簡(jiǎn)介 LLDB 是新一代高性能調(diào)試器. 它是由一組可重用組件的構(gòu)成, 這些組件大多是 LLVM 工程中的類庫杈笔,比如...
    O2Space_Xiu閱讀 8,891評(píng)論 0 4
  • [轉(zhuǎn)]淺談LLDB調(diào)試器文章來源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc閱讀 2,520評(píng)論 2 6
  • 隨著Xcode 5的發(fā)布,LLDB調(diào)試器已經(jīng)取代了GDB糕非,成為了Xcode工程中默認(rèn)的調(diào)試器桩撮。它與LLVM編譯器一...
    隨風(fēng)飄蕩的小逗逼閱讀 1,406評(píng)論 0 0
  • iOS 開發(fā)中 LLDB 常用命令整理 expression(或者縮寫expr) 表達(dá)式 expression ...
    傲視蒼穹閱讀 607評(píng)論 0 4