【问题标题】:How to enable Visual Memory Debugger in Xcode 8?如何在 Xcode 8 中启用可视化内存调试器?
【发布时间】:2016-10-15 20:29:10
【问题描述】:

我将一个项目从以前版本的 Xcode 迁移到 Xcode 8。我想要的是使用新的可视化内存调试器。它在新项目中可用,但在我导入的项目中完全缺失。这是为什么呢?

【问题讨论】:

  • 我想您应该将您的项目更新为 Xcode 8 设置推荐的设置。
  • 您是否看到任何黄色三角形(警告)要求您更新?
  • 我只是点击了那些,但问题仍然存在。
  • 你用的是64位模拟器吗?
  • 这适用于 Objective-C 代码吗?我可以使用内存调试器,但它似乎没有根据useyourloaf.com/blog/xcode-visual-memory-debugger 进行运行时问题检测

标签: xcode swift cocoa xcode8


【解决方案1】:

Visual Memory Debugger 似乎需要 Swift 3 才能工作。

我的应用迁移到 Swift 2.3 后无法运行,当我尝试将其迁移到 Swift 3.0 时,它立即运行。

运行时清理复选框不是可视内存调试器工作所必需的,但是禁用它的原因是相同的。

【讨论】:

  • Xcode 8.0 beta release notes 中确认:“请注意,使用 Swift 2.3 的项目不支持 Xcode 8 中的一些新功能。其中包括: • 内存图调试 • 地址清理程序 • 线程清理程序 • 核心数据构建时代码生成 为了能够使用这些功能,您必须将 Swift 代码迁移到 Swift 3。(26003920)"
【解决方案2】:

该项目似乎需要 Swift 3 才能启用 Adress & Thread Sanitizer(即内存调试器)。

对我来说,这适用于 iOS 和 OS X/macOS 应用程序。都用 Swift 2.2 编写并转换为 2.3。

注意:我只在 OS X El Capitan 10.11.5 上测试过这个。

@gabriellanata 确认当代码转换为 Swift 3 时它可以工作。

【讨论】:

  • 内存调试器与线程清理器不兼容。您不能同时运行两者。
【解决方案3】:

我刚刚在 Xcode 8 中运行了一个使用 Xcode 7 制作的 Objective-C iOS 7 项目(没有迁移),Visual Memory Debugger 图标出现在 Xcode 底部调试视图层次结构按钮旁边的调试区域中。

这是三个圆圈的按钮。

从其他 cmets 看来,可能需要 Swift 3 才能使用此功能。

【讨论】:

  • 它不存在。也许这与我的项目是一个 mac 应用有关?
  • 嗯,也许吧。您之前针对的是哪个版本的 OS X,以及创建项目的 Xcode 版本是什么?
  • 等等,“运行时卫生”呢?它在新项目的计划中被打开,但在我的计划中没有。它是灰色的,说“需要重新编译”
  • @PopKernel 谢谢,让我做更多的挖掘。
  • 内存调试器还要求您为 iOS 构建使用 64 位目标。花了一点时间才发现在我的环境中选择了 iPad 2 sim - 更改为 iPad Air 2 并出现了 Debug Memory Graph 按钮。
【解决方案4】:
Argument '-sanitize=address' is not supported on the Swift 2.3 toolchain. 
You will need to migrate your project to Swift 3 to use this feature.

Xcode 8 GM 构建错误

附: Visual Memory Debugger 支持的 Objective-c

【讨论】:

    【解决方案5】:

    如果您单击内存,源代码编辑器窗格将更改以显示一些内存信息,包括它被禁用的原因。就我而言,这是因为我在 Scheme 中启用了 Zombie Objects。 (Xcode 8.3.2)

    【讨论】:

      猜你喜欢
      • 2018-02-27
      • 2017-02-19
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多