如果你想快速高效調(diào)試IOS程序不妨學(xué)習(xí)下LLDB插件-Chisel子眶,如果你使用過(guò)po,p等調(diào)試命令吓懈,是否覺(jué)得它們還是太弱,想知道一個(gè)view的層級(jí)還要使用code去打由μ濉(雖然我也這樣干過(guò)),簡(jiǎn)直不能忍受半醉,下面就讓Chisel來(lái)解救你吧疚俱。
1.Chisel的安裝
Github地址:https://github.com/facebook/chisel
Chisel的安裝非常簡(jiǎn)單,你只要安裝了homebrew環(huán)境缩多,一切都是那么自然輕松呆奕。
1. brew update
2. brew install chisel
安裝完成后最后出現(xiàn)一個(gè)安裝目錄,類(lèi)似
command script import /usr/local/opt/chisel/libexec/fblldb.py
這時(shí)候你只需要~/.lldbinit文件中添加
==> Caveats
Add the following line to ~/.lldbinit to load chisel when Xcode launches:
command script import /usr/local/opt/chisel/libexec/fblldb.py
記得把上面的script替換為你的
如果 ~/.lldbinit 不存在 使用以下命令添加一個(gè)即可
touch ~/.lldbinit
然后重啟Xcode
2.內(nèi)置命令
2.1 pviews
這個(gè)命令可以打印一個(gè)view的層級(jí)衬吆,如:
(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可以打印一個(gè)viewcontroller的層級(jí)梁钾,而不是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這個(gè)命令比較強(qiáng)大,它可以使用預(yù)覽App打開(kāi)UImageView CGImageRef UIView CALayer 如:
visualize uiimageview
2.4 fv & fvc
這兩個(gè)命令是用來(lái)通過(guò)類(lèi)名搜索當(dāng)前內(nèi)存中存在的view和viewController實(shí)例的命令逊抡,支持正則搜索姆泻。
(lldb) fvc mm
0x7fd5b658b8c0 MMDrawerController
(lldb)fv cate
0x7fd5b6e06920 AlbumCategoryView
0x7fd5b6d63f80 AlbumCategoryView
0x7fd5b6d66e60 AlbumCategoryView
0x7fd5b6d69d40 AlbumCategoryView
0x7fd5b6d6cc20 AlbumCategoryView
0x7fd5b6e0a150 AlbumCategoryView
2.5 show & hide
這兩個(gè)命令用來(lái)顯示和隱藏一個(gè)指定的 UIView
(lldb) show self.view
(lldb) hide self.view
也可以使用內(nèi)存地址隱藏和現(xiàn)實(shí)view,比如通過(guò) fv cate找到一個(gè)view后使用hide隱藏它
(lldb)fv cate
0x7fd5b6e06920 AlbumCategoryView
(lldb) hide 0x7fd5b6e06920
常用的就這些命令,當(dāng)然你也可以自定義Chisel命令冒嫡,但是需要你了解點(diǎn)python拇勃,由于我不懂 所以就略過(guò)了.....