问题标签 [exc-bad-access]

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 回答
204 浏览

objective-c - 在 Obj-C 中跟踪错误的巧妙方法

我的 Objective C 程序中有一个错误,它导致机器在某些库方法中崩溃,并且所有库方法都从堆栈到 main (我没有从 XCode 给我的那个中触及)。所以,我有点神秘。

我得到的错误是:

现在,我确信这意味着我在某个地方发布了太多次,或者类似的东西。这是 seg-fault 的目标 C 版本,对吧?

我的问题是:由于它没有发生在我自己的代码中,是否有一些聪明的方法可以追踪我双重发布的内容?还是代码检查是最好的选择?

谢谢。

0 投票
5 回答
5005 浏览

iphone - 使用“obj!= nil”时 iPhone 上的 EXC_BAD_ACCESS

我在 Objective-C 中有一行非常简单的代码:

有时,我无法判断,游戏在这行代码上崩溃,并带有 EXC-BAD-ACCESS。通常似乎是从比赛场地中移除某些东西的时间,所以我猜测selectedEntity是什么被释放了,然后就是这个结果。除了不可能选择退出实体(但谁知道,也许这在我的代码中实际上并非如此......),事实上我在访问之前专门检查是否存在selectedEntity意味着我应该这里没有任何问题。Objective-C 应该支持布尔短路,但它似乎不是编辑:看起来短路与问题无关。

另外,我在这个代码块周围放了一个@try/@catch,因为我知道它每隔一段时间就会爆炸,但这似乎被忽略了(我猜 EXC-BAD-ACCESS 无法被捕获)。

所以基本上我想知道是否有人知道我可以抓住它并把它扔掉(因为我不在乎这个错误,只要它不会导致游戏崩溃)或者可以解释为什么它可能会发生. 我知道 Objective-C 用“nil”值做了一些奇怪的事情,所以我猜它指向一些既不是对象指针也不是 nil 的奇怪空间。

编辑:澄清一下,我知道下面的代码是错误的,这就是我猜想在我的程序中发生的事情。我在问这是否会导致问题——确实如此。:-)

编辑:看起来有一个边缘案例允许您在实体被删除之前选择它。所以,看起来代码的进展是这样的:

所以我猜是因为 Autorelease 池还没有被释放,所以对象不是 nil,但它的保留计数是 0,所以无论如何都不允许访问它......或者类似的东西?

另外,我的游戏是单线程的,所以这不是线程问题。

编辑:我通过两种方式解决了这个问题。首先,我不允许在那个边缘案例中选择实体。其次,我不只是调用 [entities removeObjectAtIndex:i] (删除将被删除的任何实体的代码),而是将其更改为:

只需确保在释放变量的同时将 nil 分配给变量,正如 jib 建议的那样。

0 投票
1 回答
2328 浏览

xcode - 断点在 Xcode 中被停用:当 NSZombieEnabled == YES 时,EXC_BAD_ACCESS

这个问题已经过时了,因为它是针对 XCode 3 提出的。请不要认为它对 XCode 4+ 有用。=)


我的应用程序在(看似)随机事件时崩溃。所以,我想添加 NSZombieEnabled 来调试我的 iPhone 应用程序。我克隆了我的目标并将其 Info.plist 设置为与原始目标相同,并将 NSZombieEnabled 设置为 YES。

一旦我运行该应用程序,它就会崩溃并显示...

这仅在 NSZombieEnabled 设置为 YES 时发生。如果未设置,应用程序只会运行(并在不同时间崩溃)

我想添加诸如“-[_NSZombie methodSignatureForSelector:]”之类的断点,但它们在调试期间被停用。我在打开和关闭“懒加载符号”的情况下尝试了两种方法。

我还尝试将我的 ~/.gdbinit 文件设置为

在控制台中产生这个结果:

为什么我的断点会被停用?

0 投票
3 回答
6416 浏览

ios - NSTimer 在 Iphone 上因 EXC_BAD_ACCESS 失效而崩溃

我在我的应用程序中设置了两个计时器,它们每隔几秒重复一次。一切正常,除了何时使计时器无效。当手机被锁定时,我想使这些计时器无效,然后在手机解锁时重新创建它们。

我使用通知来实现何时使计时器无效/创建。

这是 notify_didBecomeActive 方法包含的内容:

这个 notify_willResigneActive 方法包含:

问题是,当我在第二个计时器无效时调试它时,我得到了错误。奇怪的是,如果我切换计时器的顺序(比如首先使clockTicker 无效).. 我仍然在第二个计时器上遇到错误。

我可能做错了什么?

谢谢,莱昂纳多

0 投票
3 回答
3080 浏览

iphone - 从 UITableView 委托方法中访问实例变量时获取“EXC_BAD_ACCESS”

我的 iPhone 应用程序在从 UITableView 委托方法之一访问实例变量时崩溃了。我想我会保留它,所以我不明白为什么我无法毫无问题地访问它。

这是我的 .h 文件

@property (nonatomic, 保留) NSDictionary *alerts; @property (nonatomic, 保留) NSString *alertKind;

@结尾

在我的 .m 中,应用程序在第一次 NSLog 调用时终止:

我错过了什么???

viewDidLoad 方法完全没有问题:

0 投票
1 回答
1821 浏览

objective-c - 使用 NSOutlineView 时的 EXC_BAD_ACCESS

我正在尝试获取一个大纲视图来显示一个目录,现在我已经编辑了 Apple 的示例以使其在我设置的任何目录中工作,除非在扩展任何节点时我从 NSOutlineView 类中获得“EXEC_BAD_ACCESS”。

这是头文件:

这是实现文件:

更新:用最新版本更新了代码

0 投票
1 回答
5455 浏览

iphone - CGContextSetFillColorWithColor 错误 (EXC_BAD_ACCESS)

我很困惑为什么我的应用程序因此错误而崩溃。

我已经实现了 displayLayer 方法(用于渲染 CALayer)。这种方法第一次运行时一切正常。但是随后的调用是发生错误的时候。

当 self.bgColor 设置为上下文填充颜色时,似乎会发生错误。有趣的是...如果我在该行之前创建 bgColor,一切正常。但就目前而言,bgColor 是在初始化此类(displayLayer 方法的容器)时创建的。

0 投票
10 回答
57771 浏览

iphone - 在 Xcode 中打破 EXC_BAD_ACCESS?

我一般是 iPhone 开发和 Xcode 的新手,不知道如何开始对EXC_BAD_ACCESS信号进行故障排除。如何让 Xcode 在导致错误的确切行处中断?


我似乎无法让 Xcode 在导致问题的行上停止,但我确实在调试控制台中看到以下行:

10 月 25 日星期日 15:12:14 jasonsmacbook TestProject[1289]:CGContextSetStrokeColorWithColor:无效上下文

10 月 25 日星期日 15:12:14 jasonsmacbook TestProject[1289]:CGContextSetLineWidth:无效上下文

10 月 25 日星期日 15:12:14 jasonsmacbook TestProject[1289]:CGContextAddPath:无效上下文

10 月 25 日星期日 15:12:14 jasonsmacbook TestProject[1289]:CGContextDrawPath:无效上下文

2009-10-25 15:12:14.680 LanderTest[1289:207] *** -[CFArray objectAtIndex:]: 消息发送到已释放实例 0x3c4e610

现在,我试图绘制到我从中检索UIGraphicsGetCurrentContext()并传递给我想要绘制的对象的上下文。


进一步的试验和错误调试,我发现NSMutableArray我在课堂上有一个属性是一个僵尸。我进入init了该类的函数,这是我使用的代码:

我删除了这[array release]条线,它不再给我EXC_BAD_ACCESS信号,但我现在对为什么会这样感到困惑。我想当我使用该属性时,它会自动为我保留它,因此我应该从内部释放它,init以免泄漏。我对它的工作原理感到非常困惑,我读过的所有指南和 Stackoverflow 问题只会让我对如何在我的 init 方法中设置属性感到困惑。对于哪种方式最好,似乎没有共识。

0 投票
2 回答
164 浏览

iphone - 等待 iPhone 内存管理

当我在模态视图中显示另一个控制器时,我收到了 EXC_BAD_ACCESS。显然,当我到达该控制器的 viewDidLoad 时,一些变量是“无效的”。但是,如果我等待 20 秒,那么控制器将正常加载。

我是 iPhone 新手。对不起一个新手问题。

0 投票
1 回答
1458 浏览

c++ - OpenCV 矩阵访问产生 EXC_BAD_ACCESS

当我以高于 1.5 的 scalefactory 运行以下程序时,程序会抛出 EXC_BAD_ACCESS。该程序缩放图像。

例如,如果我设置 scalefactorx = 5,scalefactory = 2,它将在 x=1356 和 y=409 左右失败。

希望您能够帮助我。