你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> Xcode開發調試技巧—斷點調試

Xcode開發調試技巧—斷點調試

編輯:關於IOS

1.Condational Breakpoints(條件斷點)
普通斷點只要執行到斷點所在行就會停止程序,但是有時候我們想當滿足一定條件時才停止程序。這個調試技巧在當你想要捕獲一個循環中的變量的特定值或者一些不常發生的情況時是非常有用的,而不用你每次迭代都停止來查看。
怎樣開啟條件變量?
1.添加一個普通斷點

Xcode開發調試技巧—斷點調試

2.右鍵點擊斷點選擇“Edit Breakpoint”

Xcode開發調試技巧—斷點調試

3.打開斷點編輯器,你可以在這裡設置斷點條件(以及一些其他的斷點設置),設置好之後就可以見證奇跡了。

Xcode開發調試技巧—斷點調試
Xcode開發調試技巧—斷點調試

2.Global BreakPoint(全局斷點)  當應用產生異常或崩潰時Xcode一般會直接跳到主函數。但這並不是我們想要的, 我們想要的是產生異常或崩潰能夠停留在異常或者崩潰發生的地方而不是跳轉到主函數。幸運的是有一個方法可以做到。
Xcode有一個beautiful的功能叫做異常斷點,允許我們在異常發生時在異常發生的地方放一個斷點。你可以指定具體的異常也可以指定所有的異常。
怎樣開啟異常斷點呢?
1.工程切換到異常浏覽窗口,點擊下方左側的“Add Breakpoint”按鈕
2.選擇“Add Exception Breakpoint”確保可以捕獲所有異常。

Xcode開發調試技巧—斷點調試
Xcode開發調試技巧—斷點調試

捕獲到異常效果如下:

Xcode開發調試技巧—斷點調試

3. GDB 命令來調試程序
一般情況下,我們在程序代碼中添加斷點,是為了通過Xcode提供的‘variables view’(該view在Xcode底部console旁邊)來查看變量的狀態 。理論上,該窗口可以顯示出與當前上下文相關的所有值的狀態。實際上,這有點小問題,有時候斷點過了之後,該窗口並不會進行相關的更新。但是Xcode有 一個很不錯的功能是:我們可以使用控制台的命令來檢查某個特定的對象——這對於調試程序非常有用
1.po 命令:為 print object 的縮寫,顯示對象的文本描述(顯示從對象的 description 消息獲得的字符串信息, 如果對象不存在的話會打印出nil)。

Xcode開發調試技巧—斷點調試

2.處理scalar值時使用‘p’

Xcode開發調試技巧—斷點調試

3. 輸出view的層級關系. (但是被隱藏的命令), recursiveDescription。

Xcode開發調試技巧—斷點調試

4.其它命令(help):
1.命令                        解釋
2.break NUM               在指定的行上設置斷點。
3.bt                      顯示所有的調用棧幀。該命令可用來顯示函數的調用順序。
4.clear                   刪除設置在特定源文件、特定行上的斷點。其用法為:clear FILENAME:NUM。
5.continue                繼續執行正在調試的程序。該命令用在程序由於處理信號或斷點而
6.                        導致停止運行時。
7.display EXPR            每次程序停止後顯示表達式的值。表達式由程序定義的變量組成。
8.file FILE               裝載指定的可執行文件進行調試。
9.help NAME               顯示指定命令的幫助信息。
10.info break              顯示當前斷點清單,包括到達斷點處的次數等。
11.info files              顯示被調試文件的詳細信息。
12.info func               顯示所有的函數名稱。
13.info local              顯示當函數中的局部變量信息。
14.info prog               顯示被調試程序的執行狀態。
15.info var                顯示所有的全局和靜態變量名稱。
16.kill                    終止正被調試的程序。
17.list                    顯示源代碼段。
18.make                    在不退出 gdb 的情況下運行 make 工具。
19.next                    在不單步執行進入其他函數的情況下,向前執行一行源代碼。
20.print EXPR              顯示表達式 EXPR 的值。
21.
22.print-object                        打印一個對象
23.print (int) name                    打印一個類型
24.print-object [artist description]   調用一個函數
25.set artist = @"test"                設置變量值
26.whatis                              查看變理的數據類型

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved