chisel命令行使用

前言

不及跬步無(wú)以至千里祝峻,不積小流無(wú)以成江海。

貴在堅(jiān)持 扎筒,讓關(guān)注我的伙伴們久等了莱找,今天講講在xcode中的另一個(gè)調(diào)試高手chisel,讓你在xcode的編輯中健步如飛嗜桌!

健步如飛.jpg

安裝

  1. 安裝啟示很簡(jiǎn)單的
brew update
brew install chisel

2奥溺。這里需要注意下:

出現(xiàn)如下情況時(shí):

 ==> Caveats
Add the following line to ~/.lldbinit to load chisel when Xcode launches:
  command script import /usr/local/opt/chisel/libexec/fblldb.py

3.有步驟2,所以在這里 配置環(huán)境:

進(jìn)入終端骨宠,執(zhí)行

touch ~/.lldbinit

vim ~/.lldbinit
用vim編輯器編輯浮定,進(jìn)入文件后相满,加上這樣一句
command script import /usr/local/opt/chisel/libexec/fblldb.py

然后esc,輸入:wq保存并推出桦卒。

重啟Xcode立美,隨便打印一個(gè)斷點(diǎn),進(jìn)入lldb調(diào)試模式方灾,輸入pjson + 你要打印的數(shù)據(jù)建蹄,如果輸入pjson有補(bǔ)全提示的話就代表打印成功了

使用

2.1瀏覽

這個(gè)命令可以打印一個(gè)視圖的層級(jí),如:

(lldb) pviews self.bottomBar
<UIButton: 0x7fed1f59ed00; frame = (127.5 549; 120 40); opaque = NO; layer = <CALayer: 0x600000228620>>
   | <UIImageView: 0x7fed1f59f470; frame = (0 0; 120 40); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x60000003aec0>>
2.2 pvc
pvc可以打印一個(gè)viewcontroller的層級(jí)裕偿,而不是查看如:
2.3 可視化
可視化這個(gè)命令比較強(qiáng)大躲撰,它可以使用預(yù)覽應(yīng)用程序打開(kāi)UImageView CGImageRef UIView CALayer如:

visualize  uiimageview
2.4 fv&fvc
這兩個(gè)命令是用來(lái)通過(guò)類名搜索當(dāng)前內(nèi)存中存在的視圖和的viewController實(shí)例的命令,支持正則搜索击费。

(lldb) fv bar
2017-08-15 16:50:50.083818+0800 StilliPhone[41689:11858421] [] nw_socket_write_close shutdown(18, SHUT_WR): [57] Socket is not connected
2017-08-15 16:50:50.084305+0800 StilliPhone[41689:11858421] [] nw_endpoint_flow_service_writes [29.1 127.0.0.1:51217 ready socket-flow (satisfied)] Write request has 0 frame count, 0 byte count
2017-08-15 16:50:50.085059+0800 StilliPhone[41689:11858421] [] nw_socket_get_input_frames recvmsg(fd 20, 1024 bytes): [54] Connection reset by peer
2017-08-15 16:50:50.087424+0800 StilliPhone[41689:11833912] [] tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled
0x7fed1f412b20 UINavigationBar
0x7fed1f50daf0 _UIBarBackground
0x7fed1f71db30 _UINavigationBarBackIndicatorView
0x7fed1f413e50 CYLTabBar
0x7fed1f4140a0 _UIBarBackground
0x7fed1f5134b0 UITabBarButton
0x7fed1f520e30 UITabBarSwappableImageView
0x7fed1f513760 UITabBarButtonLabel
0x7fed1f522a90 UITabBarButton
0x7fed1f418560 UITabBarSwappableImageView
0x7fed1f523910 UITabBarButtonLabel
0x7fed1f6269f0 UITabBarButton
0x7fed1f5250b0 UITabBarSwappableImageView
0x7fed1f626ca0 UITabBarButtonLabel
0x7fed1f5263f0 UITabBarButton
0x7fed1f626f60 UITabBarSwappableImageView
0x7fed1f5266a0 UITabBarButtonLabel
(lldb) fvc bar
0x7fed1f880c00 CYLTabBarController

2.5顯示&隱藏
這兩個(gè)命令用來(lái)顯示和隱藏一個(gè)指定的UIView

(lldb) hide self.bottomBar
(lldb) show self.bottomBar
也可以使用內(nèi)存地址隱藏和現(xiàn)實(shí)視圖拢蛋,比如通過(guò)fv cate找到一個(gè)視圖后使用隱藏隱藏它
 (lldb)fv cate
    0x7fd5b6e06920 AlbumCategoryView

 (lldb) hide  0x7fd5b6e06920
2.6 打印
(lldb) pjson dic
{
  "activityname" : "全城尋找高溫下的勞動(dòng)者",
  "activityid" : "2806"
}
2.7 標(biāo)記
(lldb) border self.bottomBar
(lldb) unborder self.bottomBar
(lldb) mask self.bottomBar
(lldb) unmask self.bottomBar
2.8 重新渲染 caflush
這個(gè)命令會(huì)重新渲染,即可以重新繪制界面蔫巩, 相當(dāng)于執(zhí)行了 [CATransaction flush] 方法谆棱,要注意如果在動(dòng)畫(huà)過(guò)程中執(zhí)行這個(gè)命令,就直接渲染出動(dòng)畫(huà)結(jié)束的效果圆仔。
 例, 其中 $141 即是目標(biāo)_tableView:
(lldb) p _tableView
(UITableView *) $141 = 0x00007fed2000d000
(lldb) e (void)[$141 setBackgroundColor:[UIColor orangeColor]]
(lldb) caflush
2.9 打斷點(diǎn)用 bmessage
這個(gè)命令就是用來(lái)打斷點(diǎn)用的了垃瞧,雖然大家斷點(diǎn)可能都喜歡在圖形界面里面打,但是考慮一種情況:我們想在 [MyViewController viewWillAppear:] 里面打斷點(diǎn)坪郭,但是 MyViewController并沒(méi)有實(shí)現(xiàn) viewWillAppear:方法个从, 以往的作法可能就是在子類中實(shí)現(xiàn)下viewWillAppear:,然后打斷點(diǎn)歪沃,然后rebuild嗦锐。

那么幸好有了 bmessage命令。我們可以不用這樣就可以打這個(gè)效果的斷點(diǎn): (lldb) bmessage -[MyViewController viewWillAppear:] 上面命令會(huì)在其父類的 viewWillAppear: 方法中打斷點(diǎn)沪曙,并添加上了條件:[self isKindOfClass:[MyViewController class]]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奕污,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子液走,更是在濱河造成了極大的恐慌碳默,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缘眶,死亡現(xiàn)場(chǎng)離奇詭異嘱根,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)巷懈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門该抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人砸喻,你說(shuō)我怎么就攤上這事柔逼。” “怎么了割岛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵愉适,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我癣漆,道長(zhǎng)维咸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任惠爽,我火速辦了婚禮癌蓖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘婚肆。我一直安慰自己租副,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布较性。 她就那樣靜靜地躺著用僧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赞咙。 梳的紋絲不亂的頭發(fā)上责循,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音攀操,去河邊找鬼院仿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛速和,可吹牛的內(nèi)容都是我干的歹垫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颠放,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼县钥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起慈迈,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤若贮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后痒留,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谴麦,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年伸头,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾效。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恤磷,死狀恐怖面哼,靈堂內(nèi)的尸體忽然破棺而出野宜,到底是詐尸還是另有隱情,我是刑警寧澤魔策,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布匈子,位于F島的核電站,受9級(jí)特大地震影響闯袒,放射性物質(zhì)發(fā)生泄漏虎敦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一政敢、第九天 我趴在偏房一處隱蔽的房頂上張望其徙。 院中可真熱鬧,春花似錦喷户、人聲如沸唾那。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)通贞。三九已至,卻和暖如春恼五,著一層夾襖步出監(jiān)牢的瞬間昌罩,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工灾馒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茎用,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓睬罗,卻偏偏與公主長(zhǎng)得像轨功,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子容达,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 1.安裝Chisel源碼地址: ChiselChisel 使用 homebrew 來(lái)安裝花盐,如果你沒(méi)有安裝homeb...
    代碼干貨閱讀 971評(píng)論 0 1
  • LLDB是XCode內(nèi)置的為我們開(kāi)發(fā)者提供的調(diào)試工具羡滑,是一個(gè)有著 REPL 的特性和 C++ ,Python 插件...
    風(fēng)塵子閱讀 970評(píng)論 0 2
  • iOS調(diào)試之chisel Chisel 是一個(gè) LLDB 指令集合,用戶輔助 iOS 應(yīng)用差錯(cuò)算芯。 安裝 chise...
    comst閱讀 4,623評(píng)論 0 13
  • 最近每周末都會(huì)看葉孤城的直播柒昏,對(duì)于我們iOS開(kāi)發(fā)者來(lái)說(shuō),確實(shí)是一個(gè)福利熙揍,很感謝他們的分享精神职祷,收獲到的一些東西特此...
    天空中的球閱讀 4,053評(píng)論 3 7
  • 前言 今天花了一天的時(shí)間終于把iOS的幾種常見(jiàn)的調(diào)試方法給學(xué)習(xí)了一下,在這里給大家分享一下LLDB的使用,同時(shí)也是...
    Peak_One閱讀 11,030評(píng)論 5 33