Xcode調試技巧

一. 斷點

Xcode支持很多種不同類型的斷點,包括普通斷點、符號斷點、異常斷點、watch斷點、OpenGL ES Error 斷點和Test Failure 斷點。(后兩者不常用)

1. 普通斷點:

下普通斷點很簡單,找到你要下斷點的代碼行,點擊編輯區左邊的行數處即可;或者使用快捷鍵直接command + \


特點: 當程序運行到此處的時候將會暫停

2. 符號斷點:

符號斷點其實就是對一個特定的函數/方法名下斷點,在導航區選擇斷點tab頁 -> 點擊最下面的加號 -> Add Symbolic Breakpoint


設置符號斷點可以輸入類名+方法名,也可輸入方法名,Xcode會自動匹配在不同類中同名的方法進行斷點。


特點: 一旦所填寫的方法被調用,就會暫停。

3.異常斷點:

異常斷點在調試時如果程序拋出異常,導致程序退出,就會暫停。導航區 -> 斷點tab –> 左下角加號 -> Add Exception Breakpoint


特點: 一旦程序異常就暫停,能立馬定位問題,為比較常用的一種斷點。

4. watch斷點

watch斷點就是當某個變量發生改變的時候觸發的斷點。在Xcode的watch窗口-> 右鍵需要watch的變量 -> watch “XXX”


當所watch的值發生變化時調試器會自動暫停。并打印信息

**特點: 當要觀察某個值是否發生變化,可使用watch斷點 **

5. 其他斷點(不常用)

OpenGL ES Error Breakpoint 以及 Test Failure Breakpoint
OpenGL ES Error Breakpoint :主要是OpenGL ES的斷點調試
Test Failure Breakpoint :這個類型的斷點會在test assertion 失敗的時候暫停程序的執行。

6. 編輯斷點:

右鍵普通斷點 -> Edit Breakpoint 添加條件

斷點的屬性以及說明

屬性 說明
Condition 輸入條件表達式,滿足條件的時候斷點就會生效。
Ignore 在這里可以設置忽略斷點次數。
Action 一些斷點觸發時的操作。
Options 勾選Automatically continue after evaluating actions之后程序會在斷點產生后繼續運行。

7. 斷點后的action:

斷點后的action,其實就是當斷點被觸發可以執行一些操作。右鍵斷點 -> Edit breakpoint -> Add action

Action的類型很多,有Debugger Command、Log Message、Apple Script、Shell Command等,常用的有Debugger Command和Log Message


Action對于調試是非常有用的,比如你需要在斷點的地方頻繁打印某一對象時,你不用新加log,然后重新編譯,直接加一條Debugger Command就可以,下圖為打印self.string信息

7.1 用于action的Debugger Command常用命令

1.po命令 : 打印對象信息


2.expr命令:可以在調試時動態的執行表達式,同時打印出結果。常用來動態修改變量的值。

3.call命令 :動態調用函數,可以在不增加代碼,不重新編譯的情況下動態調用一個方法。

二. UI調試

1.控件信息

可以使用上述的po命令以及expr命令來查看、修改控件屬性。

2.快速預覽

Xcode5之后支持在調試時對變量進行快速預覽,調試時將鼠標放在變量上,然后點擊快速預覽按鈕即可看到控件的顯示。


3. 查看整體UI層級結構

點擊在Xcode的watch窗口上方的debug view hierarchy 按鈕


之后便可以觀察當前應用窗口的層級結構

注意:在面板底部左側有兩個按鈕。如下圖所示,取消對這兩個按鈕的選定,否則會隱藏一些視圖。

3.1 探索視圖層次

對于如何查看某個視圖,可以選定查看的視圖,然后觀察跳轉欄(Jump Bar)比如當選定最底部的視圖,則Jump Bar顯示


當各個視圖之間間距太小,可以使用左下方的slider來控制視圖間的間距.
同時若滾動右下方的滑塊,則可以隱藏不同層次的視圖

3.2 查看視圖

按下cmd + 6 調出導航欄的Debug navigator,選定要查看的視圖。或者直接在編輯區選定。


接著使用cmd + option + 4打開工具區的Size Inspector,便可查看該視圖的邊界、位置、錨點以及Auto Layout約束列表。

也可以通過cmd + option + 3切換至Object inspector。你會看到一個選定對象的各項信息,比如背景顏色,tag等等。

三. 參考

本篇為作者認為常用的一些調試方法,若想深入了解,可以查閱以下參考文檔。其次若有不足可以指出、探討。

XCode基本使用及調試技巧

只會左鍵斷點?是時候試試這樣那樣斷點了

breakpoints、lldb 和 chisel 的詳解

詳解Xcode 6的視圖調試

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 劍未配好,出門已是江湖。 最近一直沒有更新簡書是因為在開發和測試階段,有任務,沒有進行學習,不過在做任務的時...
    和玨貓閱讀 8,223評論 9 75
  • 前言 Xcode調試(debug)是每位IOS開發者經常做的事,很基礎也很重要,學到一些調試技巧無疑會給工作帶來很...
    xmy1012閱讀 1,536評論 0 1
  • 作者原文鏈接:點這里 一、普通操作: 1.打斷點 當然也還可以監視某個變量! 在對象視圖中,右鍵某個對象,點擊“W...
    DestinyFighter_閱讀 1,683評論 0 4
  • 程序員日常開發中有大量時間都會花費在 debug 上,從事 iOS 開發不可避免地需要使用 Xcode。這篇博客就...
    kenny肉桂閱讀 602評論 0 5
  • Python中的random模塊用于生成隨機數。下面介紹一下random模塊中最常用的幾個函數。 random.r...
    老王叔叔閱讀 4,698評論 0 0