首页
社区
课程
招聘
[原创]lldb使用方法(学习笔记)
2016-9-13 10:58 22810

[原创]lldb使用方法(学习笔记)

2016-9-13 10:58
22810
一.加载调试
调试本地文件
常规: lldb FilePath


带启动参数的调试: lldb FilePath Arg1 Arg2 ArgN


附加进程
通过进程id附加: ps aux | grep UserName | grep ProcName


(lldb)process attach --pid PidNum


通过进程名附加:  (lldb)process attach -name ProcName


二.断点
根据文件名和行号下断点(调试信息)


根据函数名下断点(调试信息)


根据虚拟地址下断点
breakpoint set -a VitrualAddress


查看/禁用/启用/删除 断点
breakpoint list


breakpoint disable BPNUM


breakpoint enable BPNUM


breakpoint delete BPNUM


内存断点
watchpoint set expression 地址

watchpoint set variable 变量名称 -- (源码调试可用)


条件断点

watchpoint modify -c 表达式

例子:
watchpoint modify -c '*(int *)0x12345678 == 20'

三.辅助命令
存在调试信息时查看代码

默认: (lldb)l

BTW:编译时需要以gcc(cc) FileName –g 的方式输出,并且发现调试信息居然会带有注释。

查看函数代码: (lldb)list FunName


查看文件代码: (lldb)list FileName


查看反汇编
disassemble -a 虚拟地址  (dis -a $pc)


寄存器读写
register read


register write RegisterName Value(hex)


单步步入/单步步过/执行到返回/执行到下一个断点

step(si)  → 单步步入 == F7

next(ni)  → 单步步过 == F8

finish → 执行到返回 == ctrl+F9

continue → 执行到下一个断点

查看调用堆栈/执行到任意调用堆栈/查看线程

bt


frame select FRAMENUM


thread list


查看内存/修改内存
memory read [起始地址 结束地址]/寄存器 -outfile 输出路径

BTW:  memory read 只能读取1024字节数据, 超出将报错。

解决方法:加-force参数
memory read 0x10001000 0x10003000 -force
或者:
memory read 0x10001000 -count 0x2000 -force
memory read $x0(寄存器) -count 0x2000 -force
--binary  // 二进制输出参数

memory write 虚拟地址 Values


查看变量

print (指定类型)寄存器/虚拟地址


po (指定类型)寄存器/虚拟地址


expression $r6 = 1   // 设置r6寄存器的值
expression $r6       // 查看r6寄存器的值
expression username(源代码中变量) = @"11111"
expression [self btnTest]     // 调用某类某方法


BTW:
  1.加参数可以更改显示方式,如/x 十六进制方式打印。
  2.po一般用作看对象信息
  3.po命令是“expression -O —“命令的别名, expression功能很强大。

查看加载模块/查看代码位于节的信息
image list –o –f   //-o显示地址  -f显示路径


image lookup

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2018-11-10 07:03 被roysue编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (8)
雪    币: 68
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lidagogo 2016-9-13 12:55
2
0
赞一个 呵呵
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fun云 2016-9-13 14:06
3
0
学习一下
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
人在塔在 2016-9-13 20:21
5
0
膜拜
请问你是QS师傅吗
我很崇拜你
师傅草粉吗
雪    币: 107
活跃值: (311)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Fido 2016-9-13 21:27
6
0
图片怎么完全失效????????
雪    币: 393
活跃值: (224)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
BinGzL 1 2016-9-14 12:38
7
0
你是神圣吗
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bintota 2016-9-18 15:14
8
0
学习一下!!!
雪    币: 1013
活跃值: (1397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
aihacker 2020-10-20 12:03
9
0
没有图片啊
雪    币: 982
活跃值: (426)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
andyhah 2023-2-14 18:11
10
0
人在塔在 膜拜 请问你是QS师傅吗 我很崇拜你 师傅草粉吗
离谱
游客
登录 | 注册 方可回帖
返回