• Xcode控制台调试常用命令


    1. p 命令

    print 命令的简写

    使用p 命令可以查看基本数据类型的值

    使用p 命令 查看对象,那么只会返回对象的指针地址。

    p 命令后面除了可以接 变量、常量,还可以跟表达式。(但是不可以是宏)

    2. po 命令

    po 命令可以理解为打印对象。

    功能与 p 命令类似,所以也是可以打印常量、变量,打印表达式返回的对象等。(不可以打印宏)

    除了使用命令外,我们也可以使用左侧区域,点击变量右键—> print Description of “xxx”

    3.expr 命令

    expr 是 expression 的简写,

    使用expr 命令,能够在调试时,动态的执行赋值表达式,同时打印出结果。

    在调试时,动态的修改变量的值,这在调试想要让应用执行异常路径(如执行某个else 情况)很有用。

    4.call 命令

    Xcode 还支持动态调用函数。

    在控制台执行该命令,可以在不修改代码,不重新编译的情况下,修改界面上的视图。

    例如:动态从contentView上移除label

    po cell.contentView.subviews

    <__NSArrayM 0x60800005f5f0>(

    >,

    >,

    >

    )

    1. call [label removeFromSuperview]
    2. po cell.contentView.subviews

    <__NSArrayM 0x600000246de0>(

    >,

    >

    )

    5.bt命令

    bt 命令 可以打印出线程的堆栈信息,该信息比左侧的Debug Navigator 看到的还要详细一些。

    bt all 命令是打印所有线程的堆栈信息。

    6.p/t 命令

    二进制打印

    7. x 命令

    打印内存数据,可接 一个对象 (eg: x person) 等价于 memory read (eg: memory read person)

    • x/4gx 命令

    x:表示打印内存数据

    4:表示打印4段地址的数据

    g:表示打印的格式,苹果是小端模式,阅读时需要从后往前读,用g格式后可以调整为阅读格式

    x:16位16进制值的数据组成一个值

    • x/4gw 命令

    x:表示打印内存数据

    4:表示打印4段地址的数据

    g:表示打印的格式,苹果是小端模式,阅读时需要从后往前读,用g格式后可以调整为阅读格式

    w:8位16进制值的数据组成一个值

    8.image 命令

    image list: 读取内存中整个的镜像文件

    命令可以列出当前App中的所有module。

    除了 image list 还有 image addimage lookup等命令。

    当遇到crash 时,查看线程栈,只能看到栈帧的地址,使用 image lookup –address 地址 可以方便的定位到这个地址对应的代码行。

  • 相关阅读:
    Redis主从复制流程
    美图赶上了AIGC浪潮?
    Linux驱动BSP (pinctrl&gpio子系统)
    一分钟带你了解C语言中数据在内存中的存储详解!
    快速掌握数据分析思路
    哪本计算机书籍,让你有了醍醐灌顶突然开悟的感觉?
    echarts-根据数据大小实现折线渐变色
    Redis之Lua的应用(四)
    Java中的锁机制
    npm常用命令大全(非常详细)
  • 原文地址:https://blog.csdn.net/watson2017/article/details/126097041