美文网首页iOS Developer
lldb的总结和如何自定义方法

lldb的总结和如何自定义方法

作者: 改变自己_now | 来源:发表于2017-04-25 10:25 被阅读235次

最近喜欢用lldb进行调试觉得非常的方便,总结一下常用的命名。
1、打印对象

po self.view

打印的内容为

<UIView: 0x7fa5b05031e0; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x600000029520>>

2、执行方法和定义变量,变量前面需要加$

(lldb) e NSString*$str = @"test"
(lldb) po $str
test

3、thread return 修改方法的返回值

- (BOOL)threadReturn {
return NO;
}

上面的方法可以打个断点,修改返回值为YES threadReturn YES
4、打印view的层级结构,并动态更新UI

 打印view的层级结构
po [[[UIApplication sharedApplication] keyWindow] recursiveDescription]

打印结果如下

<UIWindow: 0x7fe63b510880; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x6000002447d0>; layer =        <UIWindowLayer: 0x600000028000>>
 | <UIView: 0x7fe63b405ee0; frame = (0 0; 375 667); autoresize = W+H;   layer = <CALayer: 0x6080000266a0>>
 |    | <_UILayoutGuide: 0x7fe63b406290; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x6080000259a0>>
 |    | <_UILayoutGuide: 0x7fe63b406d70; frame = (0 667; 0 0); hidden = YES; layer = <CALayer: 0x608000025a80>>
 |    | <UIView: 0x7fe63b407440; frame = (0 0; 375 667); layer = <CALayer: 0x6080000258e0>>
 |    |    | <UIImageView: 0x7fe63b406770; frame = (172.5 318.5; 30 30); userInteractionEnabled = NO; layer = <CALayer: 0x608000027060>>

定义一个变量myview

e id $myview = (id)0x7fe63b405ee0

改变其背景颜色

(void)[$myview setBackgroundColor:[UIColor blueColor]]

刷新一下,背景颜色发生变化

e (void)[CATransaction flush]

5、使用command alias 来重命名方法
上面是对常用的命令的总结,发现有些命名有点长,而且敲的时候没有提示。
command alias 的规则:
command alias + 自定义的方法名 + 需要执行的方法,然后把这些放在 ~/.lldbinit中如果没有的话就touch ~/.lldbinit在打开进行编写。
如:我们要改 e (void)[CATransaction flush] 重命名为yj_flush

command alias yj_flush e (void)[CATransaction flush]

保存并重启xcode,就能使用我们自己的方方法调用了。

6、使用command regex来定义带参数的方法

command regex postNoti 's/(.+)/expr (void)[[NSNotificationCenter defaultCenter] postNotificationName:%1 object:nil]/'

命令 postNoti %1 用来post 一个notication如:

(lldb) postNoti @"MyNotification"

7、另外可以安装Facebook开的Chisel

安装方法如下:

brew update
brew install chisel

安装完后在~/.lldbinit中添加.py的路径(需根据自己的安装路径)

command script import /usr/local/opt/chisel/libexec/fblldb.py

保存,重启xcode就能用。
最后附上最部分命令的说明

Chisel部分命令说明.png
如果想知道更多命令的用途可以用help查看

相关文章

  • lldb的总结和如何自定义方法

    最近喜欢用lldb进行调试觉得非常的方便,总结一下常用的命名。1、打印对象 打印的内容为 2、执行方法和定义变量,...

  • iOS LLDB调试

    掌握以下lldb命令,够用. ### LLDB调试总结 eNSString*$str=@"test"...

  • LLDB 常用方法总结

    前言 LLDB 简介 LLDB 是集成于 Xcode 的默认调试器,支持在桌面、iOS设备和模拟器上调试C、Obj...

  • 【LLDB】高级运用与深入理解

    摘要 如何在调试中高级运用调试方法,减少重新运行 LLDB获取帮助 调用help命令来列出LLDB所有的顶层命令 ...

  • LLDB 使用总结

    LLDB 使用总结 LLDB简介 LLDB是个开源的内置于XCode的调试工具,可以安装C++或者Python插件...

  • iOS Xcode调试技巧总结

    关于调试的方法包括以下几个:日志输出&LLDB、断点、性能、一些小技巧等几个大的方面。我们一一进行学习和总结。 1...

  • ios 如何更改UISlider的高度和滑块大小(链接)

    UISlider控件属性及方法(转) UISlider - 自定义滑动条总结,滑条和滑块的大小改变方法都有详细注释...

  • iOS 都要知道的LLDB介绍与Chisel进阶

    一、LLDB 什么是LLDB LLDB[http://lldb.llvm.org/]是一个有着 REPL 的特性和...

  • Android自定义View总结

    Android自定义View总结 [toc] 步骤 自定义View的属性 在View的构造方法获取我们自定义的属性...

  • 5.6.2方法的分类

    根据方法的来源,可以将方法简单地分为用户自定义的方法和非自定义的方法(亦即系统提供的方法)1.自定义方法自定义方法...

网友评论

    本文标题:lldb的总结和如何自定义方法

    本文链接:https://www.haomeiwen.com/subject/tcnmzttx.html