LLDB是個開源的內置於XCode的調試工具,給咱們平時開發調試帶來很大的便利,同時它對咱們逆向分析別人的APP一樣有很大的幫助。 LLDB的使用其實看LLDB官方文檔就能夠了html
這篇文章我就把經常使用的指令列舉出來,方便往後查閱express
【爲C函數下斷點】
$b set -n "C函數名"
【爲OC方法下斷點】
$b set -n "-[OC類 方法名:]"
【遍歷整個項目中,爲全部同名的全部方法下斷點】
$b set -r 方法名:
【查看斷點列表】
$b list
【斷點禁用/啓用】
$breakpoint disable
$breakpoint enable
【繼續執行】
$continue c
【單步運行,將子函數當作總體一步執行】
$n next
$s
單步運行,遇到子函數會進去
【查看指令的用法】
$help [cmd]
【內存訪問斷點】
$watchpoint set variable p1->name
$watchpoint set expression 0x312315(一個內存地址)
注:斷下以後能夠經過bt查看堆棧信息,達到了解是從哪修改了內存函數
【查看當前內存/修改當前內存】
$expression self.view.subViews
$p self.view.subViews
$p self.view.backgroudColor = [UIColor redColor];
注意:
p是expression的縮寫,並非print
po 的o是表明打印該類的description
【stop-hook - 讓你在每次stop的時候去執行一些命令,只對breadpoint,watchpoint】
$target stop-hook list
$target stop-hook add -o "frame variable"
$target stop-hook delete
【查看代碼段】
$image lookup -a 0x102110226 //彙編的地址
$image lookup -t Person //快速查看一個類
$image list //系統加載的各類文件信息
【內存查看】
$memory read 0x地址(縮寫是:x)
工具
【堆棧操做】
$bt //查看堆棧列表
$up //斷下後才能夠使用 往函數上一層
$down //斷下後才能夠使用 往函數下一層
$frame select index //定位到第index層的代碼位置
$frame variable 查看全部參數,能夠經過p進行修改
$thread return 代碼回滾到上一層,並退出
調試