IOS xcode中debug的一些用法(lldb)

在软件编程中,debug是一项必须掌握的技术。怎么去打一个断点,怎么单步调试怎么step into 一个方法就不再赘述 主要来看看一些lldb常用的命令
po
(print object)是LLDB的一个命令,其主要功能是输出objective-c中对象(objects)的信息
p(print)
其主要功能是输出原生类型(boolean、integer、float、etc)的信息。
expression
expression命令可以用来修改变量的值
下面来看看我们应该怎么用这些常用的命令
首先创建一个简单的工程 , 拖一个label 和一个button上去


简单工程

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

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命令如图


在lldb中使用po命令

你可以像图中这样打印出各种对象的值,对象的属性的值等等,还可以拼接字符串
print和po差不多, 可以只用p关键字 也可以用print。自己试试
expression是用来修改值得 , 短写expr
你可以点击按钮,运行到断点的时候 使用expr txt = "xxx"
来修改txt的值 , 这样就不用为了修改个值多次运行程序了。
如图


修改txt的值

如果你觉得这样修改麻烦 还有更直接的办法
右击断点选择“Edit Breakpoint…”(或者按住cmd+option,单击断点),然后如下图所示设置断点
如图


编辑断点

然后点击addAction


配置

注意选中了最后一行(“Automatically continue after evaluating”)的选择框,这就保证运行到这个断点的时,填充变量的值,然后继续运行,并不在此处断点进入调试模式
这时候运行app,不再这里进入断点模式了 而且那个值也改变了。我们这边不用重新运行app只要点击测试就行了


结果

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

推荐阅读更多精彩内容

  • 在软件编程中,debug是一项必须掌握的技术。怎么去打一个断点,怎么单步调试怎么step into 一个方法就不再...
    smalldu阅读 3,924评论 0 16
  • 前言 今天花了一天的时间终于把iOS的几种常见的调试方法给学习了一下,在这里给大家分享一下LLDB的使用,同时也是...
    Peak_One阅读 5,403评论 5 20
  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 1,763评论 0 8
  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    杨梦鸽阅读 401评论 0 3
  • 心里乱糟糟的,糟心的还是那几件事,马上要过年回家了,口袋并没有半毛钱。说实在的,心虚的很啊。父母肯定是要拿你和别人...
    鸡仔说阅读 21评论 0 0