久違的的LLDB篇一,讓lldb提升你的效率

本來一直想給大家普及一下lldb的使用处硬,因?yàn)樯磉呌泻芏嗯笥央m然開發(fā)了很久小槐,但是還是不會(huì)使用調(diào)試器,還傻傻的打一個(gè)log,重啟程序再看這個(gè)值荷辕。說凿跳,是不是你,中招沒疮方。這一篇也是為了幫這些朋友認(rèn)識一下調(diào)試器的強(qiáng)大控嗜。整篇介紹的例子都是基于我的貼圖demo的。

1.首先介紹下如何避免重啟程序打一個(gè)log

如圖下:

lldbLog

lldbLog

1.首先注釋以前那該死的log背景被點(diǎn)擊了骡显,然后我加一個(gè)優(yōu)美的斷點(diǎn)疆栏。

2.然后右鍵點(diǎn)擊斷點(diǎn)編輯斷點(diǎn),首先選擇Action,logMessage惫谤,再點(diǎn)擊+,選擇DebugerCommander壁顶,然后這里面的命令和右下角的lldb命令是完全一樣的,這個(gè)命令你隨意打溜歪。

3.最重要的一步若专,一點(diǎn)要選擇automaticlly continue after evalating value,這個(gè)可以使得程序不會(huì)中斷繼續(xù)執(zhí)行蝴猪。

好吧调衰,大家以后就可以告別這個(gè)該死的log,以后大家的consle就不出現(xiàn)那些亂七八糟的log,而且還找不到了.我現(xiàn)在就是每次看到項(xiàng)目里一堆log就特別煩……(ps:這個(gè)……是shift+6打出來的哦),所以只要你想在輸出某一個(gè)值或者一句話看一個(gè)函數(shù),是否調(diào)用自阱,完全不需要多余的重新運(yùn)行一次程序嚎莉。

2基本的lldb命令的介紹

大家一般知道的lldb命令一般是p,和po,其實(shí)我研究了一陣子最實(shí)用的也就這兩個(gè)lldb命令,但是大家一般都不知道用在什么場合动壤。

p命令的介紹萝喘,首先p是打印非對象的值,它是 e --的縮寫琼懊。如果使用它打印對象的話阁簸,那么它會(huì)打印出對象的地址,如果打印非對象它一般會(huì)打印出基本變量類型的值哼丈。當(dāng)然用它也可以申明一個(gè)變量譬如 p int $a = 10; (注lldb使用$在變量前來聲明為lldb內(nèi)的命名空間的)

po 命令启妹,po 命令是我們最常用的命令因?yàn)樵趇os開發(fā)中,我們時(shí)刻面臨著對象(ps:但是我沒有對象醉旦,歡迎介紹)饶米,所以我們在絕大部分時(shí)候都會(huì)使用po桨啃。首先po這個(gè)命令會(huì)打印出對象的description描述。

好吧檬输,macDown語法還是沒有完全搞明白照瘾,所以篇幅不是太好看(這個(gè)完全沒想這么早出這篇博客)

下面還是使用一副圖片來描述具體的過程吧。

po的使用

po的使用

1.首先我在背景蒙層下了個(gè)斷點(diǎn)丧慈,程序中斷之后析命,我首先通過po 命令打出了【po self.view】然后打出了當(dāng)前的self.view的描述。

2.然后我通過self.view的description描述逃默,然后找到手勢NSArry的地址我打印出了當(dāng)前view上面有那些手勢鹃愤。

然后找到當(dāng)前pinch的手勢,然后通過p 命令完域,將其強(qiáng)轉(zhuǎn)成UIPinchGesture,因?yàn)閘ldb有時(shí)無法確定其具體的類型软吐,需要強(qiáng)轉(zhuǎn),但是這個(gè)強(qiáng)轉(zhuǎn)不是必須的吟税,需要你們自己根據(jù)情況來決定凹耙。

當(dāng)我們使用p 命令打印一個(gè)對象時(shí),lldb內(nèi)部會(huì)默認(rèn)使用一個(gè)$加數(shù)字來記錄這個(gè)對象乌妙。

這個(gè)$會(huì)一直存在使兔,當(dāng)這個(gè)對象還沒銷毀的時(shí)候,所以我們隨時(shí)可以通過這個(gè)變量來打印以前的值藤韵。我是通過【$61 view】找出pinch 作用的view.我們也可以使用p 命令得到一個(gè)這個(gè)view在lldb的記錄虐沥。

注意在使用lldb內(nèi)部的變量$來記錄變量的時(shí)候,絕大部分的時(shí)候都沒有語法提示泽艘,所以你需要自己能準(zhǔn)確的打印出方法的名字欲险。我這里一般,都是在當(dāng)前編輯器中去打好方法匹涮,然后再拷貝到lldb處天试。

在使用lldb命令的時(shí)候,并非所有的命令都很常用然低,你可以通過在lldb中 打印 help 查看所有的lldb命令喜每,譬如breakpoint命令,這種命令完全可以通過Xcode UI界面加斷點(diǎn)雳攘,當(dāng)然所有的xcode ui 界面加斷點(diǎn)本質(zhì)也是通過lldb的命令的带兜,這個(gè)一般用戶都不會(huì)太常用。

help命令

help命令

今天就先介紹到這里吨灭,下一篇博客我會(huì)介紹給大家如何使用開源的facebook的chisel,從安裝到以及在什么場景下使用什么命令刚照,和常用的chisel命令有哪些。因?yàn)檫@個(gè)MarkDown還沒弄太熟悉喧兄,所以重頭戲在下一章无畔。(ps:主要是markDown還沒用熟啊楚,我自己看著都不爽,所以下次會(huì)帶來更好的版本浑彰,和更詳細(xì)的介紹)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恭理,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子郭变,更是在濱河造成了極大的恐慌蚯斯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饵较,死亡現(xiàn)場離奇詭異,居然都是意外死亡遭赂,警方通過查閱死者的電腦和手機(jī)循诉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撇他,“玉大人茄猫,你說我怎么就攤上這事±Ъ纾” “怎么了划纽?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锌畸。 經(jīng)常有香客問我勇劣,道長,這世上最難降的妖魔是什么潭枣? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任比默,我火速辦了婚禮,結(jié)果婚禮上盆犁,老公的妹妹穿的比我還像新娘命咐。我一直安慰自己,他們只是感情好谐岁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布醋奠。 她就那樣靜靜地躺著,像睡著了一般伊佃。 火紅的嫁衣襯著肌膚如雪窜司。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天锭魔,我揣著相機(jī)與錄音例证,去河邊找鬼。 笑死迷捧,一個(gè)胖子當(dāng)著我的面吹牛织咧,可吹牛的內(nèi)容都是我干的胀葱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼笙蒙,長吁一口氣:“原來是場噩夢啊……” “哼抵屿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捅位,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤轧葛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后艇搀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尿扯,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年焰雕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衷笋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矩屁,死狀恐怖辟宗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吝秕,我是刑警寧澤泊脐,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站烁峭,受9級特大地震影響容客,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜约郁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一耘柱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棍现,春花似錦调煎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谎僻,卻和暖如春娄柳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艘绍。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工赤拒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓挎挖,卻偏偏與公主長得像这敬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蕉朵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

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

  • 本來一直想給大家普及一下lldb的使用始衅,因?yàn)樯磉呌泻芏嗯笥央m然開發(fā)了很久冷蚂,但是還是不會(huì)使用調(diào)試器,還傻傻的打一個(gè)l...
    kissGod閱讀 36,084評論 12 104
  • 轉(zhuǎn)載 與調(diào)試器共舞 - LLDB 的華爾茲: https://objccn.io/issue-19-2/ 推薦:i...
    F麥子閱讀 3,333評論 0 10
  • LLDB的Xcode默認(rèn)的調(diào)試器汛闸,它與LLVM編譯器一起蝙茶,帶給我們更豐富的流程控制和數(shù)據(jù)檢測的調(diào)試功能。平時(shí)用Xc...
    CoderSC閱讀 1,361評論 0 2
  • 你是否曾經(jīng)苦惱于理解你的代碼诸老,而去嘗試打印一個(gè)變量的值尸闸? NSLog(@"%@", whatIsInsideThi...
    木易林1閱讀 955評論 0 4
  • 你是否曾經(jīng)苦惱于理解你的代碼,而去嘗試打印一個(gè)變量的值孕锄? NSLog(@"%@", whatIsInsideThi...
    paraneaeee閱讀 1,194評論 0 7