Chisel

參考自 http://www.itdecent.cn/p/79468a2eb6db ,這里記錄僅供自己方便查閱, 版權(quán)歸原作者所有。

如果你想快速高效調(diào)試IOS程序不妨學(xué)習(xí)下LLDB插件-Chisel,如果你使用過po,p等調(diào)試命令,是否覺得它們還是太弱,想知道一個view的層級還要使用code去打印(雖然我也這樣干過),簡直不能忍受,下面就讓Chisel來解救你吧。

1.Chisel的安裝

Github地址:https://github.com/facebook/chisel
Chisel的安裝非常簡單,你只要安裝了homebrew環(huán)境,一切都是那么自然輕松。

1. brew update
2. brew install chisel

安裝完成后terminal最后出現(xiàn)一個安裝目錄,類似

command script import /usr/local/opt/chisel/libexec/fblldb.py

這時候你只需要~/.lldbinit文件(如沒有,則新建一個)中添加

 command script import /usr/local/opt/chisel/libexec/fblldb.py

這句即可。
然后重啟Xcode

2.內(nèi)置命令

2.1 pviews

這個命令可以打印一個view的層級,如:

(lldb) pviews self.window
     |<UIWindow: 0x7fd5b6816780; frame = (0 0; 375 667);    
 gestureRecognizers = <NSArray: 0x7fd5b6817770>;
    layer = <UIWindowLayer: 0x7fd5b68263f0>>
     | <UILayoutContainerView: 0x7fd5b6941780; 
    frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7fd5b694fc10>; layer = <CALayer: 0x7fd5b6931250>>
     | <UINavigationTransitionView: 0x7fd5b6949620; frame = (0 0;             375 667); clipsToBounds = YES; 
    autoresize = W+H; 
layer = <CALayer: 0x7fd5b6946e20>>

2.2 pvc

pvc可以打印一個viewcontroller的層級,而不是view 如:

(lldb) pvc self.mMDrawerController**
      <MMDrawerController: 0x7fd5b658b8c0; 
    view = <UIView; 0x7fd5b658cd00>;  frame = (0, 0; 375,     667)>
     | <SampleAlbumListVC: 0x7fd5b658bc90;
        view = <UIView; 0x7fd5b66be7a0>;  frame = (0, 0; 375, 667)>
     | <SlideMenuVC: 0x7fd5b6589b50; 
        view = <UIView; 0x7fd5b684f790>;   frame = (inf, inf; 0, 0)>

2.3 visualize

visualize這個命令比較強大,它可以使用預(yù)覽App打開UImageView CGImageRef UIView CALayer 如:

visualize uiimageview

2.4 fv & fvc

這兩個命令是用來通過類名搜索當(dāng)前內(nèi)存中存在的view和viewController實例的命令,支持正則搜索。

 (lldb)  fvc mm
0x7fd5b658b8c0 MMDrawerController

 (lldb)fv cate
  0x7fd5b6e06920 AlbumCategoryView
  0x7fd5b6d63f80 AlbumCategoryView
  0x7fd5b6d66e60 AlbumCategoryView
  0x7fd5b6d69d40 AlbumCategoryView
  0x7fd5b6d6cc20 AlbumCategoryView
  0x7fd5b6e0a150 AlbumCategoryView

2.5 show & hide

這兩個命令用來顯示和隱藏一個指定的 UIView

   (lldb) show self.view
   (lldb) hide  self.view

也可以使用內(nèi)存地址隱藏和現(xiàn)實view,比如通過 fv cate找到一個view后使用hide隱藏它

 (lldb)fv cate
    0x7fd5b6e06920 AlbumCategoryView
 
(lldb) hide  0x7fd5b6e06920

常用的就這些命令,當(dāng)然你也可以自定義Chisel命令,但是需要你了解點python,由于我不懂 所以就略過了.....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容