LLDB调试技巧

2020-03-28  本文已影响0人  知行合一认知升级

上学时学c++,可以感受到gdb是复杂的调试工具,难以驾驭,使用其还不如直接打Log。

虽然打log是一种方法,但不是最有效,并且具有代码入侵性。尤其是在做较大型代码的工程时。

目录

[TOC]

expression命令

po

p

变量观察

watchpoint set variable self->_name

可以观察某个变量,在变化时其会断。

符号断点

对于某一个方法,在很多地方都会调用,当确定是此方法的问题时,可用符号断点。

异常断点

Exception 错误

不编译打log

调试赋值,测试空,nil
expression journeyListModel.sourceTag = nil
在JourneyListViewCell中直接设置

chisel命令

facebook提供的一个插件

得到图片的可视化效果

visualize image
使用情况:
在overlay的过程中,传给引擎绘制图片,不显示的情况下,如何调。

得到一个函数的返回值

比如我想返回 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
的返回值,但是呢,调用栈又看不到,重写方法确实可以,
如果想临时调试,需要po,每次输入的变量还不一样,
使用

@[super pointInside:point withEvent:event]@ %B

可以自动获取变量的值

image.png

方法二
在此方法最后一行打一断点,断点走到这里之后,按step out。

image.png

没有通过存储中间变量却直接返回了一个贝塞尔曲线,可以使用这种方法
http://chaoxn.com/2016/01/21/xcode-breakpoint-method-return-value/

上一篇下一篇

猜你喜欢

热点阅读