加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift详解之二十九------谈谈debug的一些高级用法lldb

发布时间:2020-12-14 01:46:45 所属栏目:百科 来源:网络整理
导读:swift详解之二十九——谈谈debug的一些高级用法lldb 在软件编程中,debug是一项必须掌握的技术。怎么去打一个断点,怎么单步调试怎么step into 一个方法就不再赘述 主要来看看一些lldb常用的命令 po (print object)是LLDB的一个命令,其主要功能是输出obje

swift详解之二十九——谈谈debug的一些高级用法lldb


在软件编程中,debug是一项必须掌握的技术。怎么去打一个断点,怎么单步调试怎么step into 一个方法就不再赘述 主要来看看一些lldb常用的命令

po

(print object)是LLDB的一个命令,其主要功能是输出objective-c中对象(objects)的信息

p(print)

其主要功能是输出原生类型(boolean、integer、float、etc)的信息。

expression

expression命令可以用来修改变量的值

下面来看看我们应该怎么用这些常用的命令

首先创建一个简单的工程 , 拖一个label 和一个button上去

然后在代码中添加相应的属性和事件

import UIKit

class ViewController: UIViewController {

    let dic = ["k1":"v2","k2":"v2"]
    @IBOutlet weak var label:UILabel!
    @IBOutlet weak var btn:UIButton!
    var txt = "DebugDemo"

    override func viewDidLoad() {
        super.viewDidLoad()


    }

    @IBAction func clickIt(sender:UIButton){
        label.text = txt

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

然后在label.text = txt 这里打上断点

运行app,点击测试按钮。在lldb中使用po命令如图

你可以像图中这样打印出各种对象的值,对象的属性的值等等,还可以拼接字符串

print和po差不多, 可以只用p关键字 也可以用print。自己试试

expression是用来修改值得 , 短写expr

你可以点击按钮,运行到断点的时候 使用 expr txt = "xxx" 来修改txt的值 , 这样就不用为了修改个值多次运行程序了。

如图

如果你觉得这样修改麻烦 还有更直接的办法

右击断点选择“Edit Breakpoint…”(或者按住cmd+option,单击断点),然后如下图所示设置断点

如图

然后addaction

注意选中了最后一行(“Automatically continue after evaluating”)的选择框,这就保证运行到这个断点的时,填充变量的值,然后继续运行,并不在此处断点进入调试模式

这时候运行app,不再这里进入断点模式了 而且那个值也改变了。我们这边不用重新运行app只要点击测试就行了

而且这边的action也是可以添加多个的。常用的了解这些就行了。如果要深入研究。可以自行google

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读