You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSX下lldb调试疑问:print无输出但消息框显示结果,如何获取值?

解决lldb print命令无预期输出的问题

问题原因

你调试的应该是Objective-C/Swift程序,lldb的print(缩写p)和gdb的print行为存在差异:

  • gdb的print对于对象会直接输出其可读内容;
  • lldb的print默认只打印变量的底层类型、内存地址,不会主动调用对象的内容展示方法,所以看起来像“没输出”,实际是输出了指针信息,而消息框显示的是对象的字符串化结果。

正确获取值的方法

  1. 针对Objective-C/Swift对象:使用po(print object的缩写)命令,示例:

    po your_variable_name
    

    这个命令会调用对象的description(OC)或description/debugDescription(Swift)方法,输出和消息框一致的可读内容。

  2. 针对基础数据类型(int、float等):直接用print或p命令即可,和gdb行为一致:

    print int_variable
    p float_variable
    
  3. 适配gdb使用习惯:如果想让p命令和gdb的print一样自动处理对象,可以给lldb设置别名:

    command alias p po
    

    设置后输入p your_variable就会自动调用对象的内容展示。

gdb到lldb常用命令对应

帮你快速过渡:

  • gdb run → lldb r
  • gdb break <位置> → lldb b <位置>
  • gdb next → lldb n
  • gdb step → lldb s
  • gdb continue → lldb c

内容的提问来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:07:45