9.LLDB

breakpoint set --name test      通过命令给函数下断点

breakpoint set -n "[ViewController saveClick:]" -n "[ViewController pauseClick:]" -n "[ViewController continueClick:]"  给OC 函数下断点

breakpoint list  查看断点列表

c (continue 表示过)

breakpoint disable 1  (禁用这一组断点) 

breakpoint disable 1.1  (禁用这一个断点) 

breakpoint enable (启用这一组断点)

breakpoint delete 1 (删除这一组断点, 删除只能删除一组,不能删除一个)

help breakpoint (查看 breakpoint 有哪些指令)

breakpoint set --selector touchesBegan:withEvent: (给 selector 添加断点)

breakpoint set --file ViewController.m --selector touchesBegan:withEvent: (给指定的类中的sel方法添加断点)

breakpoint set -r xxx (对于xxx 类似的循环加上断点)

简写

b -f ViewController.m -r xxx

expression self.view.subviews == p self.view.subviews (查看当前控制器 的view的subviews , p就是 expression) 

po 是expression -O ,   -O ( --object-description 相当于 NSLog ) Display using a language-specific description API, if possible.

p self.view.backgroundColor = [UIColor redColor];  再输入 c,就可以执行代码

b -f ViewController.m -r touch

bt 查看堆栈信息

up 指令,跳转到上一个函数调用栈, down 指令,跳转到下一个

frame variable 指令,查看函数内部的局部变量

frame select 1 指令,查看堆栈中为1 的函数

thread return 指令,回到上一个

内存断点

watchpoint set variable p1->_name  指令,下内存断点

0x2808c85d0 为内存地址

可以看到修改name 的堆栈信息,是由[Person setName:]方法修改的,由[ViewController touchesBegan:withEvent:] 触发的,Watchpoint 1 hit:  old value: 0x0000000100898068, new value: 0x00000001008980e8 ,这里也显示了旧值和新值

watchpoint set expression 0x0000000280bd0870 指令,给内存地址下断点

target stop-hook add -o "frame varivable"   指令,当断点断住后就打印相关的参数

在家目录下 查看的话是 $ ls -a

$ pwd 

$ vi .lldbinit

添加 target stop-hook add -o "frame variable"

lldb 每次启动的时候都会加载这个文件,对应的断点都会打印所有的参数

image lookup -t XXX 指令,查看xxx类的信息

image list

image list -o -f  0000000100006468

符号断点调试

通过image list 指令获取macho 在内存中的真实地址 0x0000000100770000

使用hopper 查看macho 文件,找到-[ViewController eat:]: 方法,找到eat函数的地址0000000100006468

这时候真实的地址就是   0x0100770000 + 0x06468 = 0x100776468

然后 b -a 0x100776468 就下好了断点

ASLR   为  0x770000 

物理地址 = ASLR + 虚拟地址

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容

  •   LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用...
    Thinkdifferents阅读 1,550评论 1 4
  • 常用指令 continue / c 执行到下一个断点 next / n 单步运行 把子函数当作整体 st...
    小狼_zy阅读 387评论 0 1
  • LLDB(Low Lever Debug): 默认内置于Xcode中的动态调试工具。标准的 LLDB 提供了一组广...
    Code_人生阅读 851评论 0 2
  • [TOC] MachO文件结构 单个架构的mach-O文件包含:MachO Header、Load Command...
    _顺_1896阅读 432评论 0 0
  • 今天报名参加了简书的日更活动,每天要求写100字就可以,其实自己每天在为知笔记里记录的内容要远多于这个数字,只不过...
    王老师陪你读书阅读 950评论 0 11