Xcode Debug之添加斷點

1.添加全局斷點(Add Exception Breakpoint)

通過添加全局斷點,可以快速定位導致程序奔潰所在的代碼行。
在Xcode 中找到Breakpoint navigator(也可以通過快捷鍵command + 7跳轉),在最下面點擊加號,第一個就是:
添加全局斷點1
這樣就添加了一個全局斷點:
添加全局斷點2
程序只要一奔潰,就會觸發該斷點,並定位到導致奔潰所在的代碼行。

2.添加符號斷點(Add Symbolic Breakpoint)

Symbolic Breakpoint 是一種非常強大的斷點。
如上步驟選擇第二項:
添加符號斷點1
添加之後在Symbol一欄輸入viewDidLoad。

這樣一來,在程序中所有的viewDidLoad方法被調用時都會觸發斷點。

添加符號斷點2

當然,我們頁可以僅僅爲特定的某個類的方法添加斷點。在Symbol一欄類輸入“[ClassName viewDidLoad]”(Objective-C)或“ClassName.viewDidLoad”(Swift)即可。

3.爲斷點添加條件(Condition)

有時候我們可能會在某個循環中創建斷點,但一次又一次地點擊continue知道我們想要的條件出現,顯然是一種非常低效的方式。好在Xcode爲我們提供了條件斷點。

首先在下列代碼中插入一個普通的斷點

條件斷點1

右鍵點擊斷點,選擇Edit Breakpoint,在Condition一欄輸入i > 90

這裏寫圖片描述

這樣一來,只有當程序運行滿足條件之後纔會觸發斷點了。

4.監控斷點(Watch)

我們調試程序的大部分時候都是爲了監控某個變量的變化,在代碼中變量出現的地方添加斷點不僅累而且還可能漏掉,事後還得一個一個刪掉,實在很累。

我們可以通過爲變量添加監控斷點來簡單地做到這一點。

找到變量第一次出現的地方,添加一個普通斷點,進入debug模式後在Variables View中右鍵變量,選擇Watch變量名。這樣每一次該變量都會觸發斷點告知我們。

監控斷點1

我們可以在Console中看到其變化。

監控斷點2

5.日誌信息斷點

最常見的Debug方式應該就是NSLog或者println(swift)了。通常我們會通過這種方式來打印輸出各種實例信息以檢測程序運行狀態。
但這一調試方式也有很明顯的缺陷:

  • 無法在運行時添加
  • 添加數量過多之後干擾視線,又需要麻煩地刪除或註釋掉
  • 會編譯進App,在正式版本中需要關閉(當然我們可以通過宏來判斷是否應該編譯,但這會增加額外的操作不是嗎)

所幸在Xcode中我們還有另外一種選項。
在如下代碼中添加一個普通斷點,選擇Edit Breakpoint,然後點擊Add Action,選擇Log Message,在輸入框中輸入 The number is:@sum@。

日誌斷點1

運行效果如下圖所示:

日誌斷點2

這裏因爲有日誌輸出,所以我們可以勾選上最下面的Automatically continue after evaluating actions,這樣這個斷點就只會安安靜靜爲我們輸出日誌了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章