问题标签 [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.
objective-c - 在 Obj-C 中跟踪错误的巧妙方法
我的 Objective C 程序中有一个错误,它导致机器在某些库方法中崩溃,并且所有库方法都从堆栈到 main (我没有从 XCode 给我的那个中触及)。所以,我有点神秘。
我得到的错误是:
现在,我确信这意味着我在某个地方发布了太多次,或者类似的东西。这是 seg-fault 的目标 C 版本,对吧?
我的问题是:由于它没有发生在我自己的代码中,是否有一些聪明的方法可以追踪我双重发布的内容?还是代码检查是最好的选择?
谢谢。
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 建议的那样。
xcode - 断点在 Xcode 中被停用:当 NSZombieEnabled == YES 时,EXC_BAD_ACCESS
这个问题已经过时了,因为它是针对 XCode 3 提出的。请不要认为它对 XCode 4+ 有用。=)
我的应用程序在(看似)随机事件时崩溃。所以,我想添加 NSZombieEnabled 来调试我的 iPhone 应用程序。我克隆了我的目标并将其 Info.plist 设置为与原始目标相同,并将 NSZombieEnabled 设置为 YES。
一旦我运行该应用程序,它就会崩溃并显示...
这仅在 NSZombieEnabled 设置为 YES 时发生。如果未设置,应用程序只会运行(并在不同时间崩溃)
我想添加诸如“-[_NSZombie methodSignatureForSelector:]”之类的断点,但它们在调试期间被停用。我在打开和关闭“懒加载符号”的情况下尝试了两种方法。
我还尝试将我的 ~/.gdbinit 文件设置为
在控制台中产生这个结果:
为什么我的断点会被停用?
ios - NSTimer 在 Iphone 上因 EXC_BAD_ACCESS 失效而崩溃
我在我的应用程序中设置了两个计时器,它们每隔几秒重复一次。一切正常,除了何时使计时器无效。当手机被锁定时,我想使这些计时器无效,然后在手机解锁时重新创建它们。
我使用通知来实现何时使计时器无效/创建。
这是 notify_didBecomeActive 方法包含的内容:
这个 notify_willResigneActive 方法包含:
问题是,当我在第二个计时器无效时调试它时,我得到了错误。奇怪的是,如果我切换计时器的顺序(比如首先使clockTicker 无效).. 我仍然在第二个计时器上遇到错误。
我可能做错了什么?
谢谢,莱昂纳多
iphone - 从 UITableView 委托方法中访问实例变量时获取“EXC_BAD_ACCESS”
我的 iPhone 应用程序在从 UITableView 委托方法之一访问实例变量时崩溃了。我想我会保留它,所以我不明白为什么我无法毫无问题地访问它。
这是我的 .h 文件
@property (nonatomic, 保留) NSDictionary *alerts; @property (nonatomic, 保留) NSString *alertKind;
@结尾
在我的 .m 中,应用程序在第一次 NSLog 调用时终止:
我错过了什么???
viewDidLoad 方法完全没有问题:
objective-c - 使用 NSOutlineView 时的 EXC_BAD_ACCESS
我正在尝试获取一个大纲视图来显示一个目录,现在我已经编辑了 Apple 的示例以使其在我设置的任何目录中工作,除非在扩展任何节点时我从 NSOutlineView 类中获得“EXEC_BAD_ACCESS”。
这是头文件:
这是实现文件:
更新:用最新版本更新了代码
iphone - CGContextSetFillColorWithColor 错误 (EXC_BAD_ACCESS)
我很困惑为什么我的应用程序因此错误而崩溃。
我已经实现了 displayLayer 方法(用于渲染 CALayer)。这种方法第一次运行时一切正常。但是随后的调用是发生错误的时候。
当 self.bgColor 设置为上下文填充颜色时,似乎会发生错误。有趣的是...如果我在该行之前创建 bgColor,一切正常。但就目前而言,bgColor 是在初始化此类(displayLayer 方法的容器)时创建的。
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 方法中设置属性感到困惑。对于哪种方式最好,似乎没有共识。
iphone - 等待 iPhone 内存管理
当我在模态视图中显示另一个控制器时,我收到了 EXC_BAD_ACCESS。显然,当我到达该控制器的 viewDidLoad 时,一些变量是“无效的”。但是,如果我等待 20 秒,那么控制器将正常加载。
我是 iPhone 新手。对不起一个新手问题。
c++ - OpenCV 矩阵访问产生 EXC_BAD_ACCESS
当我以高于 1.5 的 scalefactory 运行以下程序时,程序会抛出 EXC_BAD_ACCESS。该程序缩放图像。
例如,如果我设置 scalefactorx = 5,scalefactory = 2,它将在 x=1356 和 y=409 左右失败。
希望您能够帮助我。