专栏名称: Cocoa开发者社区
CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务。
目录
相关文章推荐
51好读  ›  专栏  ›  Cocoa开发者社区

# Xcode 编译器调试命令(所有)

Cocoa开发者社区  · 公众号  · ios  · 2017-06-29 11:06

正文

请到「今天看啥」查看全文


- 类名字 - 函数名字 - 所在的行数
其它的作用参照参数后面的解释


看完上面的命令,接下来看编译器调试的几个 常用按钮



由图中可以看出用于调试的 4 个按钮

  1. 第一个 continue 如遇到如图所示,就点击后程序就正常运行,如果有其它断点,就会跳到下一个断点.

    ps : 点击它与在 LLDB调试框 里面输入
    (lldb) process continue 作用是一样的。
    c 作用效果也是一样的

    第二个 step over 当遇到一个断点暂停后,点击该按钮程序就会一行一行的执行,即使遇到了函数的调用也 不会进入函数 里面去,而是直接跳过这个函数的执行,如下图:



    115 行打了一个断点,然后点击该按钮,他会执行 116 行,再点击后会执行 117 行,而不会去执行 116 所调用的函数 里面的行
    ps : 在程序当中与该按钮作用相同的 LLDB 命令参数是一样的命令是:
    (lldb) n
    (lldb) next
    (lldb) thread step-over
    作用效果是一样的


  2. 第三个 step into .它才是真正意义上的一行一行的执行命令,即使遇到函数的执行,也会跳 该函数里面去 一行一行 的执行代码。就是说你想进入函数里面的时候用它
    ps : 在程序当中与该按钮作用相同的 LLDB 命令参数是一样的命令是:
    (lldb) thread step-in
    (lldb) step
    (lldb) s

  3. 第四个 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






请到「今天看啥」查看全文


推荐文章
DeepTech深科技  ·  BMW用旧电池建成了一座电厂
8 年前
鸟哥笔记  ·  技巧 | 搭建运营体系的2个思路
8 年前
科学网  ·  中国人才市场中的八大铁帽子王
8 年前