• 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 地址 可以方便的定位到这个地址对应的代码行。

  • 相关阅读:
    [R] Underline your idea with ggplot2
    《理解深度学习》2023最新版本+习题答案册pdf
    【JS基础】在js中如何简单的使用正则表达式
    离子液体1,3-二甲基咪唑四氟硼酸盐 [C1MIm]PF6 cas:243664-15-5(试剂)
    DevExpress DxUpload实现大文件上传
    Polygon zkEVM中的Merkle tree
    Python编程语言学习笔记
    HTTP超文本传输协议详解
    Java集合之LinedList
    为什么不直接操作State,而是要额外定义一个变量
  • 原文地址:https://blog.csdn.net/watson2017/article/details/126097041