調(diào)試

代碼

import UIKit

class ViewController: UIViewController {
    
    //@IBAction func buttonTapped(_ sender: UIButton)
    @IBAction func buttonTapped(_ sender: UIButton){
        //print("Called buttonTapped(_: )")
        print("Method: \(#function) in file: \(#file) line: \(#line) called")
        
        //print("sender: \(sender)")
        //print("Is control on? \(sender.isOn)")
        
        badMethod()
    }

    func badMethod() {
        let array = NSMutableArray()
        for i in 0..<10{
            array.insert(i, at: i)
        }
        
        for _ in 0...10{
            array.removeObject(at: 0)
        }
        print(array)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

}

單步調(diào)試代碼

  • 設(shè)置斷點:假設(shè)目前還不知道導致崩潰的原因窟她,只知道應用是在點擊按鈕之后崩潰的码泞。通常的做法是逛薇,當點擊按鈕之后讓應用暫停刹泄,然后一步一步地運行來查找原因外里。

  • 當應用運行到斷點的位置時會暫停執(zhí)行 , Xcode 會自動跳轉(zhuǎn)到下一行將要執(zhí)行的代碼的位置 特石,并且這行代碼會綠色高亮顯示盅蝗。同時, Xcode 還打開了一些新的顯示區(qū)域姆蘸。

截屏2021-11-21 22.32.22.png
截屏2021-11-21 22.28.21.png
截屏2021-11-21 22.18.32.png
  • 點擊單步執(zhí)行按鈕將高亮條移動到 badMethod() 所在的行 (此時 badMethod () 不會被執(zhí)行)墩莫。 這里并沒有進入 print() 方法,因為它是蘋果框架中的方法乞旦,所以不會有什么問題贼穆。

  • 當 badMethod() 高亮顯示之后,點擊單步進入按鈕進入 bad Method() 方法中兰粉,繼續(xù)點擊單步進入按鈕執(zhí)行代碼故痊,直到應用崩潰 。這里需要點很多下玖姑,而且看起來是在同一行代碼上一直執(zhí)行一 事實就是如此愕秫,因為這里有一個循環(huán)。

截屏2021-11-21 22.32.40.png
  • 單步執(zhí)行的過程中焰络,可以把鼠標懸浮在 i 或者 array 上戴甩,Xcode 會在彈出框中顯示變量的值。
截屏2021-11-21 22.46.16.png
  • 有時候希望知道執(zhí)行了某行代碼闪彼,但是并不需要知道任何其他信息甜孤,也不需要應用暫停 。要完成這個任務(wù) 畏腕,可以為斷點增加一個聲音并且在觸發(fā)斷點后繼續(xù)執(zhí)行 缴川。
截屏2021-11-21 22.53.09.png

現(xiàn)在執(zhí)行到斷點時就不會暫停了,而是播放一個聲音描馅。編譯并運行應用把夸,然后點擊按鈕, 這次會 聽到一串聲音 铭污,接著應用就崩潰了 恋日。

  • 為了確認循環(huán)執(zhí)行完了,再次找到斷點嘹狞,選擇 Edit Breakpoint岂膳。 在彈窗中點擊 Action 右邊的+可以增加 一個新動作 。在列表中選擇 Log Message (日志消息)磅网,然后在文本區(qū)域輸入 Pass number %H (%H 表示斷點的觸發(fā)次數(shù))谈截,最后選中 Log message to console (在控制臺中顯示日志消息)旁邊的單選框。
截屏2021-11-21 22.53.58.png

現(xiàn)在查看一下控制臺 ,可以看出斷點觸發(fā)了 10 次 傻盟, 這說明代碼的循環(huán)確實執(zhí)行完了。

異常斷點(exception breakpoint)

  • 這個方法通常是用來發(fā)現(xiàn)新問題的嫂丙,在實際開發(fā)中娘赴,通常不知道問題出在哪行代碼中。使用異常斷點能直接知道哪行代碼導致了崩潰跟啤。

編譯并運行應用诽表,然后點擊按鈕 。這次應用自動停止了隅肥,并且 Xcode 直接顯示 了導致異常的位置竿奏,但是目前控制臺中還沒有目志 , 因為現(xiàn)在應用還沒有崩潰 腥放。 如果要查看崩潰的原因 泛啸,則可以重復點擊調(diào)試欄上的繼續(xù)執(zhí)行按鈕 ,直到崩潰出現(xiàn) 秃症。

截屏2021-11-21 22.15.47.png

特征斷點(symbolic breakpoint)

  • 特征斷點并不是按照行號來設(shè)置的候址,而是按照方法名來設(shè)置的。

  • 在真實開發(fā)過程中 种柑,很少會用到特征斷點岗仑,通常只會用到前面介紹的幾種斷點。 特征斷點適用于調(diào)試不是自己寫的代碼 聚请, 例如調(diào)試 Apple 框架中的代碼荠雕,查看應用中 UIViewController 的 loadView() 方法是否被調(diào)用 。

編譯并運行應用 驶赏,點擊按鈕之后炸卑,應用就會在 badMethod() 的位置暫停了 。


截屏2021-11-21 21.58.30.png

LLDB控制臺

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末母市,一起剝皮案震驚了整個濱河市矾兜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌患久,老刑警劉巖椅寺,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒋失,居然都是意外死亡返帕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門篙挽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荆萤,“玉大人,你說我怎么就攤上這事×淳拢” “怎么了偏竟?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敞峭。 經(jīng)常有香客問我踊谋,道長,這世上最難降的妖魔是什么旋讹? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任殖蚕,我火速辦了婚禮,結(jié)果婚禮上沉迹,老公的妹妹穿的比我還像新娘睦疫。我一直安慰自己,他們只是感情好鞭呕,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布蛤育。 她就那樣靜靜地躺著,像睡著了一般葫松。 火紅的嫁衣襯著肌膚如雪缨伊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天进宝,我揣著相機與錄音刻坊,去河邊找鬼。 笑死党晋,一個胖子當著我的面吹牛谭胚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播未玻,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灾而,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扳剿?” 一聲冷哼從身側(cè)響起旁趟,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎庇绽,沒想到半個月后锡搜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瞧掺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年耕餐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辟狈。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡肠缔,死狀恐怖夏跷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情明未,我是刑警寧澤槽华,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站趟妥,受9級特大地震影響硼莽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜煮纵,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偏螺。 院中可真熱鬧行疏,春花似錦、人聲如沸套像。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夺巩。三九已至贞让,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柳譬,已是汗流浹背喳张。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留美澳,地道東北人销部。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像制跟,于是被迫代替她去往敵國和親舅桩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容