美文网首页
Xcode调试之LLDB(2)

Xcode调试之LLDB(2)

作者: 天山童姥张奶奶 | 来源:发表于2020-04-22 13:18 被阅读0次

断点和调试器交互

help命令

  • help 列出所有命令
  • help 列出某个命令更多细节,例如help prin

print

  • print 打印需要查看的变量,例如print totalCount
  • print 还能使用简写prin, pri, p
  • po(print object)可以打印对象的description方法的结果
  • 打印不同格式可以用p/x number打印十六进制,p/t number打印二进制,p/c char打印字符。这里是完整清单https://sourceware.org/gdb/onlinedocs/gdb/Output-Formats.html

expression

  • expression 可以改变一个值,例如expression s
  • expression可以使用e来代替
  • e -p — dataArray 也可以打印对象的description方法的结果,等同于po

流程控制

  • continue会取消暂停,继续执行下去到达下一个断电,LLDB中使用- - process continue,别名continue,或者使用缩写c
  • step over会执行当前这个函数,然后继续。LLDB中使用thread step-over,next或者缩写n
  • step into指跳进一个函数调试。LLDB中使用thread step in,step或者s
  • step out会继续执行到下一个返回语句,然后再次停止
  • thread return会在当前断点处直接返回出函数,函数剩余部分不会被执行。LLDB中使用thread return NO

断点管理

  • breakpoint list可以看到所有断点,简写br li
  • breakpoint set可以创建断点,缩写br

在LLDB执行C/Objective-C/C++/Swift

  • 除了创建函数,类,block等其它的都可以做到
  • 使用e进行操作,p进行打印显示结果

在调试器中直接更行UI

(lldb) e id $myView = (id)0x7f82b1d01fd0
(lldb) e (void)[$myView setBackgroundColor:[UIColor blueColor]]
(lldb) e (void)[CATransaction flush]

查找Button的target

查看按钮按下后谁会接收到按钮发出的action

(lldb) po [$myButton allTargets]
{(
<MagicEventListener: 0x7fb58bd2e240>
)}
(lldb) po [$myButton actionsForTarget:(id)0x7fb58bd2e240 forControlEvent:0]
<__NSArrayM 0x7fb58bd2aa40>(
_handleTap:
)

观察实例变量变化

想监视vMain变量什么时候被重写了,监视这个地址什么时候被写入

(lldb) p (ptrdiff_t)ivar_getOffset((struct Ivar *)class_getInstanceVariable([MyView class], "vMain"))
(ptrdiff_t) $0 = 8
(lldb) watchpoint set expression -- (int *)$myView + 8
Watchpoint created: Watchpoint 3: addr = 0x7fa554231340 size = 8 state = enabled type = w
new value: 0x0000000000000000

相关文章

  • xcode调试技巧

    Xcode调试技巧之:LLDB Xcode调试技巧之:LLDB 1.输出视图层级关系(这是一个被隐藏的命令):po...

  • iOS调试之LLDB

    iOS调试之LLDB Xcode内嵌了LLDB控制台,在Xcode代码编辑区的下方。shift + cmd + y...

  • Swift 常用快捷键

    iOS开发之Xcode常用调试技巧总结 Xcode 常用快捷键 lldb技巧:

  • Xcode调试之LLDB(2)

    断点和调试器交互 help命令 help 列出所有命令 help 列出某个命令更多细节,例如help prin p...

  • LLDB调试命令

    LLDB简介 LLDB 是 XCode 内置的调试工具。从 Xcode5 开始,LLDB 已经取代 GDB,成为 ...

  • IPhone一起玩越狱 -(十八)- 探究Xcode怎么使用ll

    引言 在Mac终端上面 那么Xcode是怎么开启lldb调试的呐? Xcode的lldb调试IPhone 未越狱l...

  • iOS调试工具 - LLDB

    LLDB LLDB是 Xcode 默认的调试工具, 支持调试 c, c++, Objective-C.支持的调试平...

  • Xcode 调试之 LLDB

    LLDB 是 Xcode 中的默认调试器,支持调试 C、Objective-C、C++,用 LLDB 调试代码的好...

  • ptrace反调试

    一、iOS调试 iOS调试里面非常常见的就是LLDB调试,LLDB是Xcode自带的调试工具,既可以本地调试Mac...

  • xcode调试之LLDB调试

    1.常用 @import 框架UIKit等 bt 打印当前线程堆栈 bt all 打印所有线程堆栈 up 向上查看...

网友评论

      本文标题:Xcode调试之LLDB(2)

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