3

我需要在 Objective C 中使用的环境变量列表。

例如NSObjCMessageEnabled: YES,它用于方法记录。请列出所有此类方法。

4

1 回答 1

4

关于 Apple 的文档,列表因版本而异。例如,对于我的 OSX 10.2.8,存在以下调试环境变量(除了NSObjCMessageLoggingEnabled):

  • OBJC_PRINT_OPTIONS:列出设置了哪些选项
  • OBJC_PRINT_IMAGES:在加载时记录图像和库名称
  • OBJC_PRINT_LOAD_METHODS:记录对类和类别+加载方法的调用
  • OBJC_PRINT_INITIALIZE_METHODS:记录对类+初始化方法的调用
  • OBJC_PRINT_RESOLVED_METHODS:记录由 +resolveClassMethod: 和 +resolveInstanceMethod: 创建的方法
  • OBJC_PRINT_CLASS_SETUP:记录类和类别设置的进度
  • OBJC_PRINT_PROTOCOL_SETUP:记录协议设置的进度
  • OBJC_PRINT_IVAR_SETUP : 非脆弱 ivars 的日志处理
  • OBJC_PRINT_VTABLE_SETUP:类vtables的日志处理
  • OBJC_PRINT_VTABLE_IMAGES:打印显示覆盖方法的 vtable 图像
  • OBJC_PRINT_CACHE_SETUP:方法缓存的日志处理
  • OBJC_PRINT_FUTURE_CLASSES:记录未来类的使用情况以进行免费桥接
  • OBJC_PRINT_GC:记录一些 GC 操作
  • OBJC_PRINT_PREOPTIMIZATION:日志预优化由 dyld 共享缓存提供
  • OBJC_PRINT_CXX_CTORS:记录对实例变量的 C++ ctors 和 dtors 的调用
  • OBJC_PRINT_EXCEPTIONS:日志异常处理
  • OBJC_PRINT_EXCEPTION_THROW:记录每个 objc_exception_throw() 的回溯
  • OBJC_PRINT_ALT_HANDLERS : 异常 alt 处理程序的日志处理
  • OBJC_PRINT_REPLACED_METHODS:日志方法替换为类别实现
  • OBJC_PRINT_DEPRECATION_WARNINGS:警告调用已弃用的运行时函数
  • OBJC_PRINT_POOL_HIGHWATER:记录自动释放池的高水位标记
  • OBJC_PRINT_CUSTOM_RR:具有未优化的自定义保留/释放方法的日志类
  • OBJC_PRINT_CUSTOM_AWZ:使用未优化的自定义 allocWithZone 方法记录类
  • OBJC_DEBUG_UNLOAD:警告卸载时表现不佳的捆绑包
  • OBJC_DEBUG_FRAGILE_SUPERCLASSES:警告子类可能已被超类的后续更改破坏
  • OBJC_DEBUG_FINALIZERS:警告实现 -dealloc 但不实现 -finalize 的类
  • OBJC_DEBUG_NIL_SYNC:警告@synchronized(nil),它不同步
  • OBJC_DEBUG_NONFRAGILE_IVARS:反复排列非脆弱的 ivars
  • OBJC_DEBUG_ALT_HANDLERS:记录有关错误 alt 处理程序使用的更多信息
  • OBJC_USE_INTERNAL_ZONE:在专用的 malloc 区域中分配运行时数据
  • OBJC_DISABLE_GC:强制 GC 关闭,即使可执行文件希望它开启
  • OBJC_DISABLE_VTABLES : 禁用 vtable 调度
  • OBJC_DISABLE_PREOPTIMIZATION:禁用预优化,由 dyld 共享缓存提供

如果您想在您的系统中获取该列表,请设置OBJC_HELPYES启动一个程序。然后,列表被转储。

于 2013-02-15T11:58:05.063 回答