xcode 控制檯調試功能

斷點調試:

可使用命令行,也能夠直接在xcode上鼠標操做。我的喜歡直接鼠標操做,來的更快些。這個因我的喜愛來吧,畢竟有人就是鍾愛命令行,就是喜歡記那些命令行,還能夠很好地裝逼,給看不懂的人一種很流弊的感受。。

很少說了 進入正題express

xcode控制檯命令之 「Image」

感受這個仍是頗有用的;xcode

使用場景

1.打了全局斷點,也捕獲不到crash位置的時候 2.程序直接crash在了main函數裏bash

使用方法

當程序直接crash掉了,還不能定位具體哪裏的問題,這時候xcode控制檯通常會出現如下顯示: markdown

xcode截圖.png

咱們大概推測能夠判斷出是哪裏出問題了,應該就是下面框住的地方; 這裏有一個地址:0x000000010b9ce919 這時候就可使用image命令快速定位問題代碼位置了 具體命令使用:直接在控制檯鍵入如下命令便可:函數

image lookup --address 0x000000010b9ce919
複製代碼

這時候就會打印出具體哪裏的代碼異常工具

具體錯誤代碼.png

打印結果顯示LQScrollView3D`裏的-[ViewController viewDidLoad] 方法 ,在 ViewController.m的第25行 錯誤。 去到代碼裏看,確實是這裏錯誤。。 這種直接能夠定位到的問題就不須要,不能斷點定位到的問題,是否是很方便啊。oop

二 xcode控制檯命令之 「expression」

做用:修改某一個屬性的值。 使用: 先在你計劃修改的值代碼位置打上斷點,而後輸入命令expression 修改你想修改的值,在繼續執行斷點,就能夠看到你修改的值了。 eg:url 中包含中文,爲非法url。截取分析閃退了。這是你能夠直接用expression修改這個url值,看是不是因爲含有中文致使。 使用實例: url

初始url.png
修改:—— 直接輸入expression 命令修改你想改的值,若是修改爲功,會直接顯示你修改好的值。
修改url值.png
修改後:—— 繼續向下執行斷點,在打印,就能夠看到你修改的那個屬性值變化了。
修改以後打印的url.png

PS: 修改某一個屬性值,讓其當即生效執行,最好用的仍是青花瓷Charles抓包工具啊。 斷點--修改屬性值--繼續執行,當即生效。

青花瓷不破解也可使用,詳細參考:唐巧——Charles 從入門到精通spa

福利,侵權刪命令行

小Tips: 爲了獲取一些堆棧信息以便於快準狠的定位問題,能夠在main函數裏:

int main(int argc, char * argv[]) {
    @try {
        @autoreleasepool
        {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    @catch (NSException* exception)
    {
        NSDebugLog(@"Exception=%@\nStack Trace:%@", exception, [exception callStackSymbols]);
    }
複製代碼
相關文章
相關標籤/搜索