iOS Xcode Breakpoint(斷點(diǎn))調(diào)試

iOS開(kāi)發(fā)開(kāi)發(fā)者掌握斷點(diǎn)調(diào)試功能非常重要,基于Xcode9來(lái)說(shuō)說(shuō)我認(rèn)識(shí)的Breakpoint。

如下圖,點(diǎn)擊行號(hào)就可以生成一個(gè)斷點(diǎn),一個(gè)斷點(diǎn)有四個(gè)基本功能:

  1. 編輯斷點(diǎn)
  2. 使斷點(diǎn)無(wú)效或有效(點(diǎn)擊斷點(diǎn)有同樣的效果)
  3. 刪除斷點(diǎn)(把斷點(diǎn)往代碼區(qū)拖動(dòng)松開(kāi)有同樣的效果)
  4. 在導(dǎo)航器中顯示斷點(diǎn)
屏幕快照 2018-07-26 14.38.32.png

調(diào)試的時(shí)候可以根據(jù)需求編輯斷點(diǎn),點(diǎn)擊Edit Breakpoint出現(xiàn)如下圖的功能:

屏幕快照 2018-07-26 14.59.46.png

1. Condition

可以輸入一個(gè)條件表達(dá)式,例如a==0,如果條件滿足了,就會(huì)觸發(fā)斷點(diǎn)

2. Ignore

這里可以設(shè)置忽略斷點(diǎn)的次數(shù),比如設(shè)置2,第三次執(zhí)行到這里的代碼,就會(huì)觸發(fā)斷點(diǎn)

3. Action

點(diǎn)擊Add Action,然后Action有6個(gè)選擇項(xiàng),如下圖:

屏幕快照 2018-07-26 15.14.15.png

  1. AppleScript
  2. Capture GPU Frame
  3. Debugger Command
  4. Log Message
  5. Shell Command
  6. Sound

功能Debugger CommandLog Message是比較常用的功能

Debugger Command 可以輸入LLDB命令

屏幕快照 2018-07-26 15.25.37.png

控制臺(tái)輸出:
屏幕快照 2018-07-26 15.26.17.png

功能Log Message

  1. %B輸出斷點(diǎn)的名稱(chēng)
  2. %H輸出斷點(diǎn)執(zhí)行的次數(shù)
  3. @@之間輸入表達(dá)式
屏幕快照 2018-07-26 15.50.13.png

控制臺(tái)輸出:

屏幕快照 2018-07-26 15.50.57.png

Options

勾選Automatically continue after evaluating actions之后程序會(huì)在斷點(diǎn)產(chǎn)生后繼續(xù)運(yùn)行。

Xcode還提供一些其他斷點(diǎn):

  1. Swift Error Breakpoint
  2. Exception Breakpoint
  3. Sysbolic Breakpoint
  4. OpenGL ES Error Breakpoint
  5. Constraint Error Breakpoint
  6. Test Failure Breakpoint


    屏幕快照 2018-07-26 16.00.19.png

Swift Error Breakpoint
Swift中使用throw,會(huì)觸發(fā)斷點(diǎn)

Exception Breakpoint
當(dāng)程序拋出異常的時(shí)候會(huì)觸發(fā)斷點(diǎn)。部分錯(cuò)誤會(huì)斷點(diǎn)在發(fā)生錯(cuò)誤的代碼。數(shù)組越界等會(huì)崩潰到main.m,不能定位到具體的代碼,使用Exception Breakpoint就能定位到具體的代碼。

Sysbolic Breakpoint

屏幕快照 2018-07-26 16.22.45.png

  • Symbol
    OC,C,C++方法,函數(shù)都會(huì)觸發(fā)斷點(diǎn)。C,C++函數(shù)只需要寫(xiě)函數(shù)名

  • Module
    模塊篩選

OpenGL ES Error Breakpoint
主要用來(lái)調(diào)試OpenGL,沒(méi)有研究其用法

Constraint Error Breakpoint
用來(lái)調(diào)試約束的,沒(méi)有研究其用法

Test Failure Breakpoint
在test測(cè)試時(shí)候,assertion失敗時(shí)觸發(fā)斷點(diǎn)。

Xcode也包含一些輔助的調(diào)試工具:


屏幕快照 2018-07-26 16.48.28.png
  1. 啟用、禁用斷點(diǎn)調(diào)試
  2. 繼續(xù)執(zhí)行
  3. 單步執(zhí)行
  4. 進(jìn)入函數(shù)
  5. 跳出函數(shù)
  6. UI調(diào)試
  7. 選擇線程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • XCode 擁有強(qiáng)大的斷點(diǎn)(Breakpoint)調(diào)試功能。 普通斷點(diǎn) 在代碼行旁邊點(diǎn)擊,就能添加一個(gè)斷點(diǎn),再次點(diǎn)...
    Stago閱讀 2,957評(píng)論 0 5
  • 劍未配好,出門(mén)已是江湖。 最近一直沒(méi)有更新簡(jiǎn)書(shū)是因?yàn)樵陂_(kāi)發(fā)和測(cè)試階段,有任務(wù),沒(méi)有進(jìn)行學(xué)習(xí),不過(guò)在做任務(wù)的時(shí)...
    和玨貓閱讀 8,499評(píng)論 9 75
  • 平常大家在開(kāi)發(fā)項(xiàng)目中,凡是遇到Bug,都會(huì)說(shuō)你打個(gè)斷點(diǎn)看看問(wèn)題出在哪里,那么斷點(diǎn)到底是什么?它在Xcode編譯器中...
    小唐羽鋒閱讀 33,050評(píng)論 5 56
  • *****************************(轉(zhuǎn)載自此網(wǎng)址)********************...
    葉舞清風(fēng)閱讀 1,272評(píng)論 0 5
  • 峰,我和別人說(shuō)了那么多夢(mèng)想,你也說(shuō)說(shuō)自己的夢(mèng)想吧! 峰:1,旅游,2,旅游,3旅游。 你的夢(mèng)想都是旅游??? 峰:這...
    幸運(yùn)花開(kāi)隨筆閱讀 591評(píng)論 3 0

友情鏈接更多精彩內(nèi)容