最近在研究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平台的程式除錯工具。在開發...