12

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

4

5 回答 5

12

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

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

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

于 2016-06-15T07:02:59.280 回答
7

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

地址消毒剂 线程消毒剂

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

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

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

于 2016-06-15T06:21:53.480 回答
0

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

于 2017-05-08T04:57:41.613 回答
0

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

可视内存调试器

这是三个圆圈的按钮。

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

于 2016-06-14T22:55:19.093 回答
0
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 构建错误

视觉内存调试器支持的 PS Objective-c

于 2016-09-09T14:54:01.313 回答