正文
-
类名字
-
函数名字
-
所在的行数
其它的作用参照参数后面的解释
看完上面的命令,接下来看编译器调试的几个
常用按钮
由图中可以看出用于调试的
4
个按钮
-
第一个
continue
如遇到如图所示,就点击后程序就正常运行,如果有其它断点,就会跳到下一个断点.
ps
: 点击它与在
LLDB调试框
里面输入
(lldb) process continue
作用是一样的。
c
作用效果也是一样的
第二个
step over
当遇到一个断点暂停后,点击该按钮程序就会一行一行的执行,即使遇到了函数的调用也
不会进入函数
里面去,而是直接跳过这个函数的执行,如下图:
在
115
行打了一个断点,然后点击该按钮,他会执行
116
行,再点击后会执行
117
行,而不会去执行
116
所调用的函数
里面的行
。
ps
: 在程序当中与该按钮作用相同的
LLDB
命令参数是一样的命令是:
(lldb) n
(lldb) next
(lldb) thread step-over
作用效果是一样的
-
第三个
step into
.它才是真正意义上的一行一行的执行命令,即使遇到函数的执行,也会跳
进
该函数里面去
一行一行
的执行代码。就是说你想进入函数里面的时候用它
ps
: 在程序当中与该按钮作用相同的
LLDB
命令参数是一样的命令是:
(lldb) thread step-in
(lldb) step
(lldb) s
-
第四个
step out
如果你进入了一个函数,运行一两行之后你想跳过该函数就用这个按钮。其实它的运行就是一个
堆栈
的结束。
快速查看 Xcode 的所有断点
如图这是通过点击查看工程文件中所有的断点
那么通过
LLDB
命令来查看所有的断点:
(lldb) br list
或者
(lldb) br li
也可以达到相同的目的
在调试器中通过
LLDB
快速创建断点
使用下面的命令完成了
115行
断点的设定
(lldb) breakpoint set -f ViewController.swift -l 115
这个时候我们执行
continue
按钮会发现跳到 115行断点了。
我们通过大列表查看
b
其介绍是:
Set a breakpoint using one of several shorthand formats.
设置断点的命令是:
(lldb) b ViewController.swift:127
在
127
处设置了断点
Xcode UI 画面上有条件的执行
断点
如图:
由图可看:
第
1
步:我们在
line 24
的地方打了一个断点。
第
2
步:我们看到标
2
的框框,这里
i==2
表示当 i等于2的时候才会执行这个断点
第
3
步:我们看到标
3
的框框,这里表示当执行这个断点的时候,
LLDB
会执行
po i
的命令
第
4
步:我们看到标
4
的框框,
当
i为2
的时候执行了断点的打印操作
其中
ignore
表示该断点第几次才会真正执行,比如 设置
ignore
为
2
那么该断点会在第三次调用的时候触发。
那么这里要说明的就是:断点程序会先
比较
函数执行到该断点的
次数
。然后
再比较条件
,条件满足后 执行
LLDB
命令
语句
其中的
+
号可以支持多个
LLDB
命令。
其他的断点条件及执行的命令,依次类推。
Action
后面的更多作用!
如图:
1.
AppleScript
苹果的一种脚本语言,可以在此开始运行
2.
Capture GPU Frame
Unity游戏
方面的调试。暂时没有研究 😄
3.
Debugger Command
相当于在
LLDB
上直接使用命令
4.
Log Message
当执行到该断点的时候
LLDB
栏中会直接打印这个
hello
的信息
5.
Shell Command
如图:
当执行该断点的时候,电脑会读
Hello world
6.
Sound
选择相应的声音遇到该断点会发出相应的声音,也是挺有意思的。
一些
LLDB
及控制台插件,配合插件及脚本开发将大大提高开发效率。
chisel
Rainbow
...
随便打个断点:
命令行输入:
(lldb) help
快速查询所以的命令
一览表
命令
|
命令作用描述
|
|
|
|
apropos
|
-- List debugger commands related to a word or subject.(列出与某个单词或主题相关的调试器命令。)
|
|
|
|
breakpoint
|
-- Commands for operating on breakpoints (see 'help b' for shorthand.)(断点的相关操作,详细看下面)
|
|
|
|
bugreport
|