59

我在 Xcode 中启用了内存检查(编辑方案 -> 选项)。当我在设备调试上执行时,我现在得到以下信息:dyld: could not load inserted library '/usr/lib/libgmalloc.dylib' because image not found. 该措施是主动采取的,希望能在周期的早期发现错误。

内存检查在设备上无效吗?它似乎是有效的,因为它已根据http://lists.apple.com/archives/xcode-users/2012/Mar/msg00271.html得到承认和调查。此外,Xcode 在编译和链接期间没有任何抱怨。如果它对设备无效,为什么 Xcode 插入库?有什么解决办法吗?谷歌搜索返回了一些点击,但我没有看到任何具体的解决方案。

在设备上调试时如何启用 Xcode Guard Malloc?

4

4 回答 4

67

您不能在设备上使用 GuardMalloc。

于 2014-09-30T06:24:26.540 回答
61

为了解决这个问题,我创建了两个新的 Xcode 方案。一个名为“XXX 设备”,不包括 malloc 守卫;第二个是“XXX Simulator”,确实包括 malloc 守卫。

添加用于设备/模拟器目的的方案是有问题的(http://www.cocoabuilder.com/archive/xcode/303307-why-does-xcode-create-nonsensical-destinations-in-every-scheme.html)。显然,Dave Duncan 没有遇到 Xcode 无法正确执行某些操作的问题(或者他没有使用诸如 malloc 守卫之类的工具)。

这是库比蒂诺软件垃圾的恶臭。对 Apple 及其糟糕的 QA 部门(如果存在)+1,这让另一个 bug 自由飞翔。

于 2012-11-30T02:30:32.333 回答
11

正如其他人回答的那样,您不能在设备上使用Enable Guard Malloc,但可以在模拟器上使用。

从 Xcode 7.3.1 开始,所有其他 3 个内存管理选项可以在设备上使用Enable Malloc ScribbleEnable Malloc Guard EdgesEnable Zombie Objects.

于 2016-06-06T15:05:35.613 回答
2

重新启动设备修复了它。iOS 没有更新。特别糟糕 !

于 2014-10-24T05:50:16.637 回答