iOS 動態除錯LLDB

2021-10-01 19:46:20 字數 1670 閱讀 5280

最近在研究ios的逆向,學到了動態除錯lldb這塊,之前在開發的時候只是進行正常的打斷點和列印引數,沒有去具體的了解整個除錯流程。這次做個相關知識的學習並進行個總結。

什麼是lldb?

lldb是low level debugger的簡稱,在ios開發的除錯中lldb是經常使用的,lldb是xcode內建的動態除錯工具。

llvm 是乙個模組化和可重用的編譯器和工具鏈技術的集合,創始人是 chris lattner,也是swift之父

lldb 是 llvm 的子專案,基於llvm提供的庫和clang構建的優秀的本地偵錯程式。

什麼叫動態除錯?

將程式運行起來,通過下斷點、列印等方式,檢視引數、返回值、函式呼叫流程等。

xcode動態除錯:

常⽤lldb指令:

1、 指令的格式

[[...]] [-options [option-

value]] [argument [argument...]]

比如給test函式設定斷點

5、thread return [《返回值》]

6、frame variable [《變數名》]

7、thread continue、continue、c :程式繼續運⾏

8、thread step-over、next、n :單步運行,把子函式當做整體一步執⾏

9、thread step-in、step、s :單步運⾏,遇到子函式會進⼊子函式

10、thread step-out、finish :直接執⾏完當前函式的所有**,返回到上乙個函式

11、thread step-inst-over、nexti、ni

12、thread step-inst、stepi、si

13、breakpoint set

14、breakpoint list

15、breakpoint disable 斷點編號 :禁⽤斷點

16、breakpoint enable 斷點編號 :啟⽤斷點

17、breakpoint delete 斷點編號 :刪除斷點

18、breakpoint command add 斷點編號

給斷點預先設定需要執⾏的命令,到觸發斷點時,就會按順序執⾏

19、breakpoint command list 斷點編號 檢視某個斷點設定的命令

20、breakpoint command delete 斷點編號 刪除某個斷點設定的命令

21、記憶體斷點—— 在記憶體資料發⽣改變的時候觸發

22、image lookup

23、image list

小技巧敲enter,會⾃動執行上次的命令 絕⼤部分指令都可以使用縮寫

IOS 除錯lldb命令常用 po

lldb命令常用 備忘 假如你準備在模擬器裡面執行這個,你可以在 lldb 提示的後面輸入下面的 lldb po eax lldb在xcode4.3或者之後的版本裡面是預設的偵錯程式。假如你正在使用老一點版本的xcode的話,你又gdb偵錯程式。他們有一些基本的相同的命令,因此假如你的xcode使用...

iOS關於LLDB除錯命令學習總結

日常工作中一定會需要跟蹤除錯,現將經常用到的除錯命令總結如下,方便以後查閱 1.加斷點 b 行號 例如 b 20 則會在20行 處新增斷點 2.圖層結構 po self.view.recursivedescription 3.修改變數值 expr 變數 lldb po localversion ns...

iOS除錯奇巧淫技 二 之LLDB

一篇我們介紹了ios除錯奇巧淫技 一 主要是幾種斷點的功能和執行時間測試,這次我們進一步學習乙個讓你用了之後愛不釋手的測試工具 lldb lldb是乙個開源的內置於xcode的除錯工具,可以安裝c 或者python外掛程式。與lldb相對應的是gdb,主要存在於基於unix平台的程式除錯工具。在開發...