成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS常用調試方法:斷點調試

移動開發
在iOS項目開發過程中,常用到靜態分析(Analyze)、斷點(BreakPoint)和控制臺(Console)進行代碼調試。本篇文章介紹Xcode常用調試方法之”斷點調試“。

奇技指南

在iOS項目開發過程中,常用到靜態分析(Analyze)、斷點(BreakPoint)和控制臺(Console)進行代碼調試。本篇文章介紹Xcode常用調試方法之”斷點調試“。

[[262842]]

一、簡介

Xcode的斷點功能是iOS開發者的常用功能。在代碼編輯區內的左邊欄上點擊一下即可創建一個斷點,當程序每次運行到斷點,就會暫停下來,方便開發者調試。如下圖:

iOS常用調試方法:斷點調試

同時,開發者可以使用上圖中用數字標記的工具輔助斷點調試。各工具的作用如下:

  • 啟用/禁用斷點(點擊后變灰色,所有斷點失效;再點擊變藍色,所有斷點生效)
  • 繼續執行程序(點擊后跳過本次斷點,繼續執行程序)
  • 執行下一步(點擊后執行第37行代碼)
  • 進入方法(點擊后進入-afunction方法)
  • 跳出方法(在-afunction方法內部點擊后回到第36行代碼)

除了斷點的基礎用法,開發者還可以使用斷點的進階功能:編輯斷點、異常斷點和符號斷點。

二、編輯斷點

雙擊斷點或者右鍵點擊斷點,選擇Edit Breakpoint即可打開斷點編輯頁面。頁面中包含Condition、Ignore、Action和Options四個部分,接下來逐一介紹。

1、Condition

Condition為條件。開發者可以在Condition輸入框中設置觸發斷點的條件。比如,在一個for循環中,可以設置在滿足i==5時才觸發斷點。如下圖:

iOS常用調試方法:斷點調試

2、Ignore

Ignore為忽略次數。開發者可以在Igore輸入框中設置忽略此斷點的次數。比如,設置Ignore為5,則在第6次執行到斷點行時才會觸發斷點。

3、Action

Action為觸發動作。Action可以添加多條,在觸發斷點后,會緊接著執行設定的Actions。Action有6種執行類型,其中較常用的有Debugger Command和Log message,如下圖:

iOS常用調試方法:斷點調試

1) Debugger Command

Debugger Command允許開發者設定一些LLDB命令,從而實現打印對象、修改變量等功能。如下圖:

iOS常用調試方法:斷點調試

2) Log Message

Log Message為提供了標準的文本輸出格式。開發者可以按照格式設定在觸發斷點后輸出的內容。其中,@exp@表示輸出exp的內容,%B表示輸出斷點的名稱,%H表示輸出斷點執行的次數。如下圖:

iOS常用調試方法:斷點調試

4、Options

Options控制在執行斷點對應的Actions后是否自動繼續執行程序。勾選后Options后,斷點被觸發后不進入Debug界面。

三、異常斷點(全局斷點)

開發者可以在Xcode中很方便地創建一個異常斷點。如下圖:

iOS常用調試方法:斷點調試  

當創建異常斷點后,會顯示一個名為All Exceptions的斷點,所以也常稱作全局斷點。當程序拋出異常時會觸發異常斷點,并且大部分常見錯誤會被斷點定位到對應的代碼行,很方便調試。比如:設置全局斷點后,我們寫一段數組越界的代碼,當運行到此代碼時,就會斷點到越界的那一行。如下圖:

iOS常用調試方法:斷點調試

而當去掉全局斷點后再次運行程序觸發越界代碼后會崩潰斷點到main.m中,而不會定位到越界那一行。如下圖:

iOS常用調試方法:斷點調試

四、符號斷點

 

符號斷點(Symbolic Breakpoint)是全局斷點,可以針對某一個方法(函數)設置斷點。開發者可以很方便地創建一個符號斷點,如下圖:

iOS常用調試方法:斷點調試

與普通斷點相比,符號斷點的編輯界面多出來Symbol和Module兩個輸入框。

1、Symbol

開發者可以在Symbol輸入框中設置斷點出發方法/函數。如下圖,在Symbol中設置一個方法/函數后,運行程序并執行到此方法時會觸發斷點。

iOS常用調試方法:斷點調試

這里要注意Symbol中方法/函數的寫法:

  • 方法(OC方法):用+指明是類方法,用-指明是實例方法,參數聲明不可省略,:后不能有空格;
  • 函數:(C函數):直接寫函數名即可。

2、Module

開發者可以在Module輸入框中設置Symbol中的函數所在的庫,以避免不同庫中存在名字相同的方法/函數,默認不用填寫。

3、Condition等功能

符號斷點編輯頁面除Symbol和Module外的Condition等功能用法與普通斷點一致。比如,在Condition輸入框中設置$arg3==nil && $arg4==nil,就會限制斷點在滿足***個參數和第二個參數都為nil時才會被觸發。如下圖:

iOS常用調試方法:斷點調試

總 結

Xcode的斷點調試功能非常強大,開發者充分利用斷點調試,再結合上豐富的LLDB調試命令,會在很多程度上提高開發效率。

【本文是51CTO專欄機構360技術的原創文章,微信公眾號“360技術( id: qihoo_tech)”】

戳這里,看該作者更多好文

責任編輯:未麗燕 來源: 360技術
相關推薦

2019-04-12 08:10:33

iOS靜態分析Xcode

2019-04-26 06:58:56

iOSLLDBXcode

2017-04-19 10:25:01

JS斷點調試

2021-08-26 05:04:53

JavaScript調試技巧

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2017-01-19 19:20:35

iOS調試小技能

2014-08-06 11:59:16

Xcode變量summary

2013-05-17 10:54:37

iOS開發iOS SDK調試技巧

2022-10-13 13:21:58

系統httpsCharles

2013-07-11 10:16:07

Android調試

2009-09-27 08:57:29

Visual Stud

2013-11-15 13:22:22

瀏覽器JavaScript

2021-05-08 11:50:59

網絡安全API函數代碼

2017-06-28 14:21:22

Linux調試器斷點

2010-10-29 16:06:55

Oracle存儲過程

2017-04-18 09:27:14

Visual StudNode.js調試

2009-10-09 10:21:31

Visual Stud

2013-04-18 09:55:56

iOS開發Xcode調試斷點

2013-03-25 11:00:35

互聯網開發

2020-01-06 10:01:12

JavaScript瀏覽器HTML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产 欧美 日韩 一区 | 国产免费又黄又爽又刺激蜜月al | 欧美一区二区在线观看 | 精品久久久久久亚洲精品 | 九九久久这里只有精品 | 国产一区在线免费观看视频 | 国产精品久久久久久久 | 干干天天| 国产三区精品 | 中文字幕日韩专区 | 欧美在线视频a | 日韩在线精品视频 | 九九福利| 亚洲成人黄色 | 亚洲欧美中文日韩在线v日本 | 九九色综合| 亚洲精品久久久久久久久久久 | 国产高清一区二区三区 | a级免费视频 | 色婷婷av777 av免费网站在线 | 亚洲精品成人av久久 | 国产视频第一页 | 国产精品一区二区三区四区五区 | 欧美日韩国产在线观看 | av中文字幕在线观看 | 欧美国产精品久久久 | 日韩欧美视频免费在线观看 | 成人综合视频在线 | 日本三级在线网站 | 亚洲综合久久精品 | 日本久久久久久 | 精品一区二区三区91 | 国产高清视频在线观看 | 国产一区二区三区 | 综合久久综合久久 | 超碰在线人人 | 在线免费观看黄a | 日韩第一区 | 91高清在线视频 | 成年网站在线观看 | 美女拍拍拍网站 |