问题标签 [nszombie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
37403 浏览

ios - 什么是 NSZombie?

我已经看到建议说要NSZombieEnabledtrue调试时设置。什么是 NSZombie?它是一个框架吗?设定?

0 投票
2 回答
426 浏览

iphone - breakpoint to cause iOS app to stop immediately when messaging a zombie object?

I have a memory management bug in my iOS app. I have set NSZombieEnabled, and the "message sent to deallocated object" message duly appears in the console. But execution appears to go past the point of that message before the app crashes. At a minimum, it is stepping out of some methods. This makes it harder to track down the bug.

Is there a way I can get execution to stop right when the message is sent to the deallocated object?

0 投票
1 回答
126 浏览

iphone - 奇怪的记忆问题

在某些时候,我分配了一个 NSMutableData 元素,如下所示:

后来,我这样做:

最后我打电话给:

现在根据仪器(支持僵尸的分配),第二块 NSString *dataAsString = ... 的第一行调用 [data release]

发生在哪里?

0 投票
1 回答
807 浏览

ios - _NSZombie_NSKeyValueUndefinedGetter - 这是什么?

大家好,
当我第一次加载我正在编写的应用程序时,我遇到了一个毫无意义的错误。

_NSZombie_NSKeyValueUndefinedGetter 类在两者中都实现了??和 ??。将使用两者之一。哪一个是未定义的。

以前有人遇到过这个问题吗?它仅在启用 NSZombies 时发生。
在此先感谢大家。

0 投票
1 回答
4811 浏览

objective-c - 调试过度释放的对象,NSZombie 的问题

编辑:我找到了这次崩溃的原因!bbum 指出缓冲区溢出是一个非常常见的原因,所以我查看了我拥有的唯一缓冲区类型 malloc:

我后来覆盖了超出数组边界的数据,它应该比baseCells.count. 谢谢你!

问题: 我在 -drainEXC_BAD_ACCESS期间有一个可复制的NSAutoreleasePool,这似乎表明我过度释放了一个对象。所以我启用NSZombie了,但程序不再崩溃。我也没有将任何信息记录到控制台。如果我关闭 NSZombie,崩溃会再次出现。这是什么意思?我认为 NSZombies 正是用来解决这类问题的。如果 NSZombie 没有帮助,还有其他方法可以询问这个过度释放的对象吗?

此外,在模拟器上无法重现崩溃,这就是为什么我不能将 Instruments 与 NSZombie 一起使用。

以下是崩溃点的回溯。

0 投票
2 回答
943 浏览

xcode - XCode Zombies 显示 CFArray 增加 Live Bytes

我以前没有使用过 Zombies,并且必须承认我不确定它在做什么。但是,我担心一件事:

CFArray 似乎在不断增加它的 Live Bytes 和 # Living 列,以及一些我认为是相关的 malloc。这是我的应用程序只是坐在那里,渲染(OpenGL)并等待输入的时候。

我已经尝试运行泄漏工具,但这并没有表明我在此期间发生了内存泄漏,甚至没有更多的分配。没有任何分配,更不用说CFArray了。

那么我应该相信这两种工具中的哪一种呢?或者只是我不明白僵尸仪器实际上在做什么?

如果有任何关于 Zombies 的像样的文档可供任何人指出,那就太酷了。苹果的文档似乎掩盖了一点。

0 投票
1 回答
452 浏览

c# - 是否可以在 Monotouch 中使用 NSZombieEnabled?

我一直在阅读有关环境变量的信息NSZombieEnabled,我想知道目前是否可以在 Monotouch 运行时中使用它?如果没有,是否有合适的替代方案让我只是上釉?

我问的原因是因为找到他们的应用程序中可能存在的任何泄漏可能会有所帮助——我尝试使用 Instruments 并取得了有限的成功,并想尝试所有可能的选项,以确保我有一个好的和稳定的应用程序。

编辑

我误解了它们的用途(毕竟是星期一早上......) - 但我仍然很想知道这是否可能,或者因为 C# 的自动 GC,它们是否相关?

0 投票
1 回答
526 浏览

iphone - iOS 4.2 操作系统正在调用僵尸的 viewDidUnload(未分配的类)

我有一组 UIViewControllers,我用 NavigationController 堆积起来。当我到达这堆的最后一个元素时,我执行了一个 popToRootViewController。如果我尝试再次创建这个堆(是的,我确实在我的视图中使用了一些内存负载),系统会为我之前在导航控制器堆中的一个对象调用 memoryWarning 和 viewDidUnload。我知道这没关系,我无法控制它何时会生成内存警告或调用 viewDidUnload。问题是,由于某种原因,当它到达那里时,'self' 已经未分配(NSZombie),所以我无法将我的属性设置为 nil 并释放内存。如果我这样做,我会收到一条消息发送到已释放的实例。

两件事情:

(a) 有没有办法让我在弹出到根目录时强制从导航控制器中释放所有子视图,这样我就可以更加“内存友好”?

(b) 为什么它会调用未分配类的 viewDidUnload?

这是我得到的堆栈跟踪:

非常感谢任何帮助/建议!

谢谢,

费尔南多

0 投票
2 回答
2088 浏览

xcode - objectAtIndex - 发送到已释放实例的消息

我在查找我的问题在我的搜索控制器中时遇到了一个真正的问题。这是一个带有搜索栏和搜索显示控制器的表格视图。它曾经工作正常,但突然停止工作。我打开了 NSZombieEnabled,它显示我的名为 searchDataSource 的 NSArray 是僵尸。

当您键入搜索词时,“shouldReloadTableForSearchTerm”会执行 handleSearchForTerm 函数。“handleSearchForTerm”函数访问我的 ProductInfo 类,该类查询 SQLite 数据库并返回查询结果。然后将这些结果放在我的 searchDataSource 数组中。在那里一切似乎都正常。但是,一旦我进入“cellForRowAtIndexPath”函数并尝试从 searchDataSource 加载单元格,即当我遇到数组已被释放的问题时。

这是我的搜索控制器代码:

搜索视图控制器.m

我对 Objective-C 很陌生,无法理解我做错了什么。我花了几天时间试图解决这个问题,但没有运气。我将不胜感激任何人都可以提供的帮助。

基思

0 投票
1 回答
1859 浏览

xcode - xcode 3.2.5 使用性能工具运行 -> 僵尸选项已禁用

我一直在为 iOS 开发,但对 Instruments 很陌生。我正在阅读一些使用工具的教程,但其中大多数使用 Run with performance tool->object allocations,这在我的 XCode (3.2.5) 中不存在。如果我选择“分配”(在我的 XCode 中存在),则没有选择僵尸的选项(正如在对象分配中所预期的那样)。此外,使用性能工具运行 -> Zombies 已禁用。为什么 XCode 会禁用僵尸选项?