iOS調(diào)試——Chisel

Chisel是facebook開源的輔助xcode進(jìn)行iOS開發(fā)調(diào)試的工具跌捆,包含一系列更加有用的lldb命令,而且Chisel還支持添加本地以及自定義命令赵抢。本文從工具介紹開始凤跑,帶大家認(rèn)識并使用這一強(qiáng)大工具。

Chisel 簡介

github地址

安裝

直接按照官方文檔進(jìn)行:

  1. 安裝Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 安裝Chisel
brew update
brew install chisel
  1. 更新.lldbinit
    .lldbinit文件是lldb啟動之前加載的文件氢烘,用于lldb的初始化怀偷,每次lldb啟動都會加載。安裝chisel成功之后播玖,終端會打印如下提示椎工,按照提示,將啟動chisel的命令復(fù)制到.lldbinit文件中蜀踏。


    chisel安裝.png

    我是通過如下命令直接將上面的命令寫入文件中(>>表示追加到文件尾维蒙,如果你已經(jīng)添加過則無需再次添加)

echo command script import /usr/local/opt/chisel/libexec/fblldb.py >> ~/.lldbinit
  1. 重啟xcode并check
    check方法有兩種,第一種是打開終端依次輸入:llbd<enter>,help<enter>果覆;第二種方法是打開xcode木西,打斷點(diǎn)并執(zhí)行到斷點(diǎn)處,輸入help命令随静。滾動help的結(jié)果八千,當(dāng)找到Current user-defined commands:一行吗讶,即表示安裝成功。


    chisel安裝check.png

Chisel常用命令簡介

  • pmethods
    print the class and instance methods of a class.

  • pclass
    Print the inheritance starting from an instance of any class.

  • poobjc
    Print the expression result, with the expression run in an ObjC++ context. (Shortcut for "expression -O -l ObjC++ -- " ).

  • pviews
    Print the recursion description of <aView>.

  • pcells
    Print the visible cells of the highest table view in the hierarchy.

  • pblock
    Print the block`s implementation address and signature.

  • mask
    Add a transparent rectangle to the window to reveal a possibly obscured or hidden view or layer's bounds

  • border
    Draws a border around <viewOrLayer>. Color and width can be optionally provided. Additionally depth can be provided in order to recursively border subviews.

  • show
    Show a view or layer.

添加本地及自定義命令

參考官方文檔恋捆,這里整理出基本步驟如下:

  1. 開發(fā)命令腳本
    官方文檔提供了一個example(源碼貼在下面方便大家閱讀)
  2. 更新.lldbinit
    同Chisel安裝完成后的步驟一樣照皆,需要將初始化的命令同步到.lldbinit文件中。
  3. check命令
    同check Chisel是否安裝成功的方法一樣沸停。
#!/usr/bin/python
# Example file with custom commands, located at /magical/commands/example.py

import lldb
import fblldbbase as fb

def lldbcommands():
  return [ PrintKeyWindowLevel() ]
  
class PrintKeyWindowLevel(fb.FBCommand):
  def name(self):
    return 'pkeywinlevel'
    
  def description(self):
    return 'An incredibly contrived command that prints the window level of the key window.'
    
  def run(self, arguments, options):
    # It's a good habit to explicitly cast the type of all return
    # values and arguments. LLDB can't always find them on its own.
    lldb.debugger.HandleCommand('p (CGFloat)[(id)[(id)[UIApplication sharedApplication] keyWindow] windowLevel]')

最后膜毁,Enjoy yourself!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愤钾,一起剝皮案震驚了整個濱河市瘟滨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌能颁,老刑警劉巖杂瘸,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伙菊,居然都是意外死亡败玉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門镜硕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來运翼,“玉大人,你說我怎么就攤上這事兴枯⊙剩” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵财剖,是天一觀的道長六剥。 經(jīng)常有香客問我,道長峰伙,這世上最難降的妖魔是什么疗疟? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮瞳氓,結(jié)果婚禮上策彤,老公的妹妹穿的比我還像新娘。我一直安慰自己匣摘,他們只是感情好店诗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著音榜,像睡著了一般庞瘸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赠叼,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天擦囊,我揣著相機(jī)與錄音违霞,去河邊找鬼。 笑死瞬场,一個胖子當(dāng)著我的面吹牛买鸽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贯被,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼眼五,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彤灶?” 一聲冷哼從身側(cè)響起看幼,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幌陕,沒想到半個月后诵姜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苞轿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逗物。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搬卒。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖翎卓,靈堂內(nèi)的尸體忽然破棺而出契邀,到底是詐尸還是另有隱情,我是刑警寧澤失暴,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布坯门,位于F島的核電站,受9級特大地震影響逗扒,放射性物質(zhì)發(fā)生泄漏古戴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一矩肩、第九天 我趴在偏房一處隱蔽的房頂上張望现恼。 院中可真熱鬧,春花似錦黍檩、人聲如沸叉袍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喳逛。三九已至,卻和暖如春棵里,著一層夾襖步出監(jiān)牢的瞬間润文,已是汗流浹背姐呐。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留转唉,地道東北人皮钠。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像赠法,于是被迫代替她去往敵國和親麦轰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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

  • [轉(zhuǎn)]淺談LLDB調(diào)試器文章來源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc閱讀 2,512評論 2 6
  • Chisel 調(diào)試工具砖织,F(xiàn)acebook開源的一款lldb調(diào)試工具-->GitHub 安裝Chisel 1.安裝h...
    黃二瓜閱讀 491評論 1 1
  • 馬上就要國慶了款侵,提前祝大家國慶快樂!侧纯! 前兩天在gitHub上面發(fā)現(xiàn)了一個調(diào)試的三方框架,Chisel,由face...
    小明的知識庫閱讀 998評論 0 51
  • LLDB的Xcode默認(rèn)的調(diào)試器新锈,它與LLVM編譯器一起,帶給我們更豐富的流程控制和數(shù)據(jù)檢測的調(diào)試功能眶熬。平時用Xc...
    CoderSC閱讀 1,362評論 0 2
  • 1.順便問一下妹笆,你們互相認(rèn)識嗎? ????? ?? ?? ?????? 2. 我很愿意為你引見我的朋友娜氏。 ?? ?...
    韓語小助手閱讀 383評論 0 3