美文网首页
iOS 底层 - 常用LLDB指令

iOS 底层 - 常用LLDB指令

作者: 水中的蓝天 | 来源:发表于2020-04-05 12:31 被阅读0次

    本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望指教,万分感谢。

    常用LLDB指令集

    • print 、p : 打印基本数据类型

    • po : 打印对象

    • bt :打印函数调用栈 -- >下断点,在控制台输入bt指令

    • expression : 简写 - -> expr 修改变量的值 示例:expression str = @"嗨不嗨" expr str = @"你猜"

    • si : stepi -- step instruction 汇编指令级别的一行一行执行,并且可以进入函数

    • ni : nexti 汇编指令级别的一行一行执行,不能进入函数
      注意:step 、next去掉 i这个指令就表示是OC方法层面的执行

    • 读取内存

      • memory read/数量格式字节数 内存地址
      • x/数量格式字节数 内存地址
      • 示例: x/3xw 0x10011
    • 格式

      • x :16进制 ,f :浮点数 ,d: 10进制
    • 字节大小

      • b : byte 1字节, h : half word 2字节
      • w : word 4字节,g : giant word 8字节
    • 修改内存中的值

      • memory write 内存地址 数值
      • 示例:memory write 0x0000010 10
    • 单步运行,把子函数当做整体一步执行 (源码级别)
      thread step-over
      next
      n

    • 单步运行,遇到子函数会进入子函数(源码级别)
      thread step-in
      step
      s

    • 单步运行,把子函数当做整体一步执行(汇编级别)
      thread step-inst
      stepi
      si

    • 直接执行完当前函数的所有代码,返回到上一个函数(遇到断点会卡住)
      thread step-out
      finish

    相关文章

      网友评论

          本文标题:iOS 底层 - 常用LLDB指令

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