【问题标题】:How to print value of a constant/macro while debugging in Xcode?在 Xcode 中调试时如何打印常量/宏的值?
【发布时间】:2012-10-15 10:28:12
【问题描述】:

在调试 iOS 应用程序时,我知道如何使用以下方法打印对象的值:

打印“变量名”

po“变量名”

p“整数变量”

我想知道在 Xcode 中调试时如何打印常量的值? 有没有打印常量值的命令?因为,如果我使用上述命令,Xcode 会返回错误提示

error: use of undeclared identifier

谢谢。

【问题讨论】:

  • 当你说“常数”时,是const int something = 123;还是#define SOMETHING 123
  • 不,你不能。使用const int ...typedef enum { ... } MyType; 而不是预处理器常量。
  • 那么,我不能在 Xcode 运行时打印宏的值?
  • 没有。无论如何,使用enum 会更好。

标签: iphone ios xcode ipad


【解决方案1】:

宏(当你#define 某些东西时你得到的)是语言预处理器的领域。它们被扩展,并在编译代码时使用扩展值。

调试器不会解析您的源文件,它会根据二进制文件中的内容工作。所以不,您将无法在调试器中查看#define 宏的值。

【讨论】:

    【解决方案2】:

    老问题,但现在使用 -g3 (GCC) 或 -fdebug-macro (Clang) 编译会为此类预处理器宏生成调试信息。

    【讨论】:

      猜你喜欢
      • 2012-09-11
      • 2023-03-13
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2010-12-11
      相关资源
      最近更新 更多