自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

移動開發(fā)
編碼不能沒調(diào)試,調(diào)試不能沒斷點(Break Point)。XCode的斷點功能也是越來越強大。

[[143035]]

編碼不能沒調(diào)試,調(diào)試不能沒斷點(Break Point)。XCode的斷點功能也是越來越強大。

基本斷點

如下圖,這種是最常用的斷點,也是最容易設(shè)置。左鍵點擊一下就可以設(shè)置。 

duandian1.png

編輯斷點

斷點是可以編輯的。

duandian2.png

斷點有下面幾個屬性可以設(shè)置:

  • Condition
  • Ignore
  • Action
  • Options

Condition

這里可以輸入條件表達(dá)式,滿足條件的時候斷點就會生效。例如上面輸入a == 50。這個是非常有用的設(shè)置,特別在循環(huán)體內(nèi)調(diào)試的時候,用著真的是爽。

Ingore

在這里可以設(shè)置忽略斷點次數(shù)。

Action

Action是這里最復(fù)雜的,***大的功能了。Action有6中類型。如下圖

QQ截圖20150730105638.png

  1. AppleScript

  2. Capture GPU Frame

  3. Debugger Command

  4. Log Message

  5. Shell Command

  6. Sound

常用的就是Log Message和Debugger Command

Log Message

在這里填寫的東西可以打印到控制臺。例如我做了如下設(shè)置:

duandian3.png

%B會打印斷點的名字,%H會打印斷點的調(diào)用次數(shù),@@中間可以輸入表達(dá)式。 上面的設(shè)置在控制臺的輸出如下:

55.png

#p#

Debugger Command

這里可以輸入調(diào)試命令,也就是po(打印對象信息),bt(打印函數(shù)棧),expression(表達(dá)式)這些調(diào)試命令。看圖就明白了:

duandian4.png

image 控制臺輸出如下:

 

duandian5.png

Options

勾選Automatically continue after evaluating actions之后程序會在斷點產(chǎn)生后繼續(xù)運行。這個屬性是相當(dāng)有用的,可以輸入調(diào)試信息至于不暫停程序。

出了上面的基本斷點外,XCode還提供了下面四種斷點,需要點擊斷點面板左下角的+號添加。

duandian6.png

  • Exception Breakpoint

  • OpenGL ES Error Breakpoint

  • Symbolic Breakpoint

  • Test Failure Breakpoint

Exception Breakpoint

Exception Breakpoint是一個非常有用的斷點項。正如名字所示,當(dāng)程序拋出異常的時候就回產(chǎn)生斷點。通常程序崩潰會停在崩潰的地方,但有時候并不能準(zhǔn)確停在引起異常的地方。比如數(shù)組越界!比如我下圖所示,會引起數(shù)組越界訪問。 

duandian7.png

duandian8.png

程序運行的時候就會崩潰。但是崩潰停在了main函數(shù)里面,就算看了棧信息也不能馬上定位到到底是那個數(shù)組越界訪問了。為什么崩潰不能停在數(shù)組越界哪里?這是因為數(shù)組越界訪問不一定會導(dǎo)致程序崩潰的,數(shù)組越界訪問會導(dǎo)致異常拋出,而拋出的異常沒有得到處理才會導(dǎo)致程序崩潰。因此***會導(dǎo)致崩潰停在CoreFoundation框架里面。這個時候就需要設(shè)置Exception Breakpoint產(chǎn)生斷點來定位錯誤了。

duandian10.png

duandian11.png

OpenGL ES Error Breakpoint

這個主要是OpenGL ES的斷點調(diào)試,這個個人沒用到過。

Symbolic Breakpoint

Symbolic Breakpoint,符號斷點,真的是調(diào)試神器啊。當(dāng)程序運行到特定符號的時候就會產(chǎn)生斷點。通過這種方式添加斷點,就不需要在源文件中添加,也不需要知道斷點設(shè)置在文件的第幾行。如圖: 

duandian12.png

比普通斷點多了兩個屬性Symbol和Module。

Symbol

Symbol的內(nèi)容,可以有如下幾種: 

1. 方法名稱:會對所有具有此方法名稱的類方法生效。例如 initWithFrame: 。 

2. 特定類的方法:OC類和C++類都適用,例如 ,[UIView initWithFrame:]或者 Shap::draw()。 

3. 函數(shù)名稱。例如普通C函數(shù)。

通過設(shè)置Symbol來調(diào)試,好用根本停不下來,想怎么斷點就怎么斷點。

Test Failure Breakpoint

這個類型的斷點會在test assertion 失敗的時候暫停程序的執(zhí)行。

責(zé)任編輯:倪明 來源: 空之境界投稿
相關(guān)推薦

2021-08-26 05:04:53

JavaScript調(diào)試技巧

2017-04-19 10:25:01

JS斷點調(diào)試

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2011-03-04 16:41:57

FileZilla

2015-02-03 15:06:23

android多線程下載

2022-09-30 00:03:03

JS斷點線程

2022-10-08 00:07:00

JSV8調(diào)用棧

2015-08-07 15:35:42

ios短點下載源碼

2011-11-21 15:12:54

Java斷點Eclipse

2019-04-18 09:31:07

iOS項目開發(fā)斷點代碼

2011-05-31 13:29:40

Android 多線程

2010-02-05 10:16:35

C++斷點無效

2017-08-08 08:45:44

前端文件斷點續(xù)傳

2021-11-11 09:07:04

CSS 技巧唯美的邊框

2014-08-06 11:59:16

Xcode變量summary

2013-07-22 14:02:17

iOS開發(fā)ASIHTTPRequ

2021-02-07 22:51:37

Fiddler打斷點界面

2023-06-20 19:57:13

2022-10-13 13:21:58

系統(tǒng)httpsCharles

2017-12-20 15:11:48

iOS緩存文件斷點機制
點贊
收藏

51CTO技術(shù)棧公眾號