斷點(diǎn)
設(shè)置斷點(diǎn)
$breakpoint set -n XXX
set 是子命令
-n 是選項(xiàng) 是--name 的縮寫(xiě)!查看斷點(diǎn)列表
$breakpoint list刪除
$breakpoint delete 組號(hào)禁用/啟用
$breakpoint disable 禁用
$breakpoint enable 啟用遍歷整個(gè)項(xiàng)目中滿足Game:這個(gè)字符的所有方法
$breakpoint set -r Game:
流程控制
- 繼續(xù)執(zhí)行
$continue c - 單步運(yùn)行,將子函數(shù)當(dāng)做整體一步執(zhí)行
$n next - 單步運(yùn)行,遇到子函數(shù)會(huì)進(jìn)去
$s
常用命令
1)image 命令可用于尋址:
"image lookup --address + 地址" 尋找棧地址對(duì)應(yīng)的代碼位置(當(dāng)碰到給一堆堆棧錯(cuò)誤時(shí)很有用),即可以直接定位追蹤到Bug崩潰在哪一行自脯,像如下這種情況闷哆,崩潰是全局的劫恒,根本沒(méi)有定位到哪一行潜慎,而且很多時(shí)候lldb reason是沒(méi)有提示的站绪,這個(gè)時(shí)候就需要用到image lookup --address命令了,當(dāng)我輸入這行命令時(shí)image lookup --address 0x0000000106d94cbe谣旁,就會(huì)在后面打印出崩潰的 類名 所在方法 所在行捉撮。
p命令:
是輸出基本類型的灾梦,但是我們發(fā)現(xiàn)其實(shí)都可以用漱贱。在輸出結(jié)果中我們還能看到類似于$0,$1這樣的符號(hào)槐雾,我們可以將其看作是指向?qū)ο蟮囊粋€(gè)引用,我們?cè)诳刂泼姘逯锌梢灾苯邮褂眠@個(gè)符號(hào)來(lái)操作對(duì)應(yīng)的對(duì)象幅狮,這些東西存在于LLDB的全名空間中募强,目的是為了輔助調(diào)試。expr命令:
可以在調(diào)試時(shí)動(dòng)態(tài)執(zhí)行指定表達(dá)式崇摄,并將結(jié)果打印出來(lái)擎值。常用于在調(diào)試過(guò)程中修改變量的值,與po類似。call命令:
即是調(diào)用的意思逐抑。
5)bt命令:
打印調(diào)用堆棧,加all可打印所有thread的堆棧鸠儿。
6)po 命令:
是‘point object’(即打印對(duì)象,且會(huì)調(diào)用description方法)〗浚可以在調(diào)試時(shí)動(dòng)態(tài)執(zhí)行指定的表達(dá)式汹粤,并將結(jié)果打印出來(lái),是個(gè)很有用的命令田晚。