iOS-LLDB調試命令(Low Lever Debug)

斷點

  • 設置斷點
    $breakpoint set -n XXX
    set 是子命令
    -n 是選項 是–name 的縮寫!

  • 查看斷點列表
    $breakpoint list

  • 刪除
    $breakpoint delete 組號

  • 禁用/啓用
    breakpointdisable breakpoint enable 啓用

  • 遍歷整個項目中滿足Game:這個字符的所有方法
    $breakpoint set -r Game:

流程控制

  • 繼續執行
    $continue c
  • 單步運行,將子函數當做整體一步執行
    $n next
  • 單步運行,遇到子函數會進去
    $s

常用命令

1)image 命令可用於尋址:
“image lookup –address + 地址” 尋找棧地址對應的代碼位置(當碰到給一堆堆棧錯誤時很有用),即可以直接定位追蹤到Bug崩潰在哪一行,像如下這種情況,崩潰是全局的,根本沒有定位到哪一行,而且很多時候lldb reason是沒有提示的,這個時候就需要用到image lookup –address命令了,當我輸入這行命令時image lookup –address 0x0000000106d94cbe,就會在後面打印出崩潰的 類名 所在方法 所在行。

2) p命令:
是輸出基本類型的,但是我們發現其實都可以用。在輸出結果中我們還能看到類似於0, 1這樣的符號,我們可以將其看作是指向對象的一個引用,我們在控制面板中可以直接使用這個符號來操作對應的對象,這些東西存在於LLDB的全名空間中,目的是爲了輔助調試。

3) expr命令:
可以在調試時動態執行指定表達式,並將結果打印出來。常用於在調試過程中修改變量的值,與po類似。

4) call命令:
即是調用的意思。

5)bt命令:
打印調用堆棧,加all可打印所有thread的堆棧。

6)po 命令:
是‘point object’(即打印對象,且會調用description方法)。可以在調試時動態執行指定的表達式,並將結果打印出來,是個很有用的命令。

發佈了39 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章