问题标签 [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 投票
1 回答
122 浏览

iphone - 使用前向声明调用类时,IBOutlet 为 NIL?

我一直有这个问题,所以我画了一个图表......

替代文字 http://tomsfil.es/7bdead0a.png

我成功进入了 A 类 - 方法 B,但那时,IBOutlet Z 是零?:( 有任何想法吗?

注意 有人告诉我这可能是一个过度发布并使用 NSZombieEnabled 但这让我很困惑

0 投票
3 回答
11179 浏览

iphone - 如何调试仅在 iPhone 应用程序的发布目标上发生的 EXC_BAD_ACCESS?

我正在开发一个 iPhone 应用程序。我有一个EXC_BAD_ACCESS仅在发布目标中出现的;当我构建调试目标时,不会发生异常。但是,当我将NSZombieEnabled环境变量设置为时YES,我仍然EXC_BAD_ACCESS没有进一步的信息。NSZombieEnabled执行发布目标时甚至可以工作吗?我不明白为什么不,因为 gdb 在这两种情况下都在运行......

更新:这是堆栈顶部的打印输出:

这是顶部 objc_msgSend 调用内部的一个 gdb 会话:

发生异常就行了0x33369ebc <objc_msgSend+20>: ldr r5, [r4, #8]r4刚刚被赋予 指向的值r0,恰好是 0。我想知道 . 的内存区域应该是什么0x3100000。这是该区域的内存转储:

我真的不知道还能尝试什么;希望有更多 iphone 经验的人能够认识到这段记忆是有意义的。

更新 2:我刚刚发现问题仅在使用 -O2、-O3 和 -Os 编译时出现。不确定这意味着什么。

0 投票
1 回答
1486 浏览

iphone - EXC_BAD_ACCESS NSUrlConnection

EXC_BAD_ACCESS当我执行函数的最后一行(webData)时,我得到了一个。

我尽量不发布任何东西,因为我在网上看到的是它几乎总是一个记忆的东西。

当我调试代码时,(NSZombieEnabled = YES)这是我得到的:

有人有线索吗?

0 投票
2 回答
894 浏览

iphone - NSZombieEnabled 破坏工作代码?

我有以下方法UIImageManipulation.m

我用不同的观点来称呼它:

(imageView是之前分配的一个UIImageView)

这在我的代码中效果很好。我完美地调整了图像的大小,并且抛出了零错误。我也没有在构建->分析下弹出任何东西。但是第二次我打开NSZombieEnabled调试另一个EXC_BAD_ACCESS问题时,代码就中断了。每一次。我可以NSZombieEnabled关闭,代码运行良好。我打开它,然后砰的一声。破碎的。我注释掉这个电话,它又可以工作了。每次,它都会在控制台中给我一个错误:-[UIImage release]: message sent to deallocated instance 0x3b1d600. 如果 `NSZombieEnabled 关闭,则不会出现此错误。

有任何想法吗?

- 编辑 -

好吧,这要死我了。我到处都设置了断点,但我仍然无法抓住这个东西。这是我调用该scaleImage方法时的完整代码:

另一种方法UIImageManipulatormakeRoundCornerImage_

不过,这与这种方法有关。必须。如果我将其注释掉,它会很好用。如果我把它留在里面,错误。但它不会在NSZombieEnabled关闭时抛出错误。

0 投票
1 回答
1594 浏览

iphone - 在没有 NSZombie 的情况下追踪 EXC_BAD_ACCESS?

我已经花了两天时间,但我仍然找不到崩溃的原因。

我知道这与尝试访问已释放的对象有关,但我不知道哪个访问或哪个对象。

每当我谷歌试图找到 EXC_BAD_ACCESS 的来源时,人们建议使用 NSZombies。问题是当我启用僵尸(通过环境变量在 xcode 中或通过 ObjectAlloc 属性在仪器中)时,程序不会在通常发生的地方崩溃,并且僵尸不会报告任何内容(日志中没有任何内容,也没有任何标记仪器)。NSZombie 有什么我缺少的吗?

我尝试利用来自 xcode 的调试器和工具中的 ObjectAlloc 的一些信息,但所有信息都非常神秘,并没有真正帮助我。

我已将调试器设置为在objective-c 异常上停止。当它这样做时,这是显示的调用堆栈:

首先,'1 ??' 是怎么回事?? 问号是什么意思?其次,我怎么知道在我的代码中调用它的位置?所陈述的所有操作都太通用了(例如 UIView dealloc,但是哪个 UIView?在哪里?)。

此外,当异常发生时,它再次指向汇编代码,这对我没有任何好处,除非我要花费数小时试图弄清楚代码的作用。我知道一些组装,但必须更好的方法......对吗?

有什么方法可以让我获得有意义的信息,说明在异常发生之前我的代码中运行的最后一行是什么?

我尝试在周围散布一些 NSLogs 和断点,但这对我没有多大帮助,因为崩溃发生我从导航控制器弹出视图控制器之后。我放置断点的所有地方都可以很好地达到断点(崩溃后我找不到要中断的点)。只有当我在调试器中“继续”时才会发生异常。就好像崩溃发生在我的代码之外,所以我不知道在哪里处理它。

我查看了我的代码并仔细检查了我是否遵守所有内存管理规则(至少据我所知)。我确定这是非常微妙的东西,但我似乎无法找到它。

如果有人有任何想法如何在没有 NSZombie 的情况下找到此类错误,请分享。

谢谢。

0 投票
1 回答
1007 浏览

iphone - 分析 NSZombie

我不断收到错误的指令或错误的异常,所以我启用了 NSZombieEnabled 和其他所需的变量,但我不知道如何分析结果。这是记录的内容:

更新:

我想我找到了问题的根源。

保留计数记录为:1 1 5 4

我不明白为什么推动 viewController 会使 retainCount 上升到 5 =\

0 投票
3 回答
8887 浏览

iphone - -[CALayer retain]:消息发送到释放的实例

我正在开发一个 iphone 应用程序,当我打开我的 NSZombieEnabled 时,我经常会因错误而崩溃:

当我在视图控制器中推送或弹出视图时,它总是会出现。有时之前会出现这个错误:

这是什么意思?任何人都有线索或遇到过这个问题?

非常感谢您的帮助!

罗曼

0 投票
2 回答
369 浏览

iphone - NSZombie 没有登录到控制台

我的一个表视图出现 EXC_BAD_ACCESS 错误。我尝试将 NSZombieEnabled 键添加到可执行文件环境变量中。

似乎屏幕不再崩溃,但我没有从日志中收到任何消息来指示正在发生的事情

我究竟做错了什么?

0 投票
2 回答
661 浏览

iphone - 不知何故,我的单身财产正在被释放

我有一个名为的单例对象PoolManager,它在 plist 中加载和保存一些数据。在我的整个程序中,当需要了解我的池时,它会询问[PoolManager sharedPoolManager]它的属性。我有一个视图负责设置这些属性,而所有其他属性都只是从中读取。一切正常,然后不知为什么,它开始崩溃。我设置NSZombieEnabled = YES并可以看到,当我访问这两个NSString属性之一时,它们似乎已被释放。调试器消息是:*** -[CFString respondsToSelector:]: message sent to deallocated instance 0x5a336d0

我尝试回到以前的快照,一切正常,它仍然这样做。我什至使用 TimeMachine 从昨天回到项目,它也这样做了。我很困惑。

这是单例对象代码......显然是僵尸的surface和字符串。shape对不起所有的NSLogs



0 投票
0 回答
1258 浏览

nszombie - 无法启用 NSZombieEnabled

我正在使用 xcode_3.2.3_and_ios_sdk_4.0.1 并设置以下所有内容。

启用它(在 xcode 中) 1. 在 Xcode 项目的 Executables 组中双击一个可执行文件。2. 单击参数选项卡。3. 在“要在环境中设置的变量:”部分中,创建一个名为“NSZombieEnabled”的变量并将其值设置为“YES”。

但是我在 Leaks 中看不到 NSZombieEnabled。当我单击分配右侧的 X 按钮时,我只看到 4 个项目,而不是 5 个项目。我看不到“启用 NSZombie 检测”复选框。

我的测试 iphone 是 3G,更新 4.0 iOS。我可以使用设备来使用 NSZombieEnable 吗?

谢谢。