问题标签 [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.
macos - 为什么我的可可程序在启动过程中会出现 EXC_BAD_ACCESS?
在加载我的可可应用程序期间,我的程序崩溃并显示 EXC_BAD_ACCESS 消息。堆栈跟踪没有帮助。关于如何找到问题的任何线索?
iphone - TableViewController 中行为异常的Objective-C 对象数组(EXC_BAD_ACCESS)
我是 Objective-C 的新手,我不明白为什么我的 Car 对象数组中的 NSString 对象似乎已被释放。
这是我的 Car.m 课程:
这是我的 Simple_TableViewController.m 类。listData 实例变量在 viewDidLoad() 中设置正确。在调试器中,每个数组元素的 NSString *name 属性是完整的。然后,在其他所有方法中,listData 都已损坏。它包含所有具有正确 primaryKey 和 categoryId 值的 Car 元素,但 NSString *name 属性为“无效”。
我已经摆弄了 Zombie 这个并保留它直到我的手指掉下来。我取消了 listData 变量的@property(非原子,保留)和@synthesize 东西,但我仍然遇到同样的问题。
提前感谢您提供的任何建议!
objective-c - 从 objC 方法中的函数(float *VeryBigArray,long SizeofArray)中调用函数失败,并出现 EXC_BAD_ACCESS
好的,我终于找到了问题。它在 C 函数(CarbonTuner2)而不是 objC 方法中。我在函数内部创建了一个与文件大小相同的数组,所以如果文件大小很大,它会创建一个非常大的数组,我的猜测是,当我从那里调用另一个函数时,局部变量被放在堆栈上创建了 EXC_BAD_ACCESS。我当时所做的不是使用变量来声明数组的大小,而是直接输入数字。然后代码甚至没有编译。它知道。错误类似于:数组大小太大。我想连续工作 20 多个小时并不好 XD 但我肯定会研究除逐步调试以外的工具来解决这些问题。谢谢你的帮助。这是代码。如果将 gFileByteCount 除以 2,则不再出现错误:
iphone - UIAlertView 无法显示并导致“EXC_BAD_ACCESS”错误
当按下键盘上的返回按钮时调用一个方法。在调用另一个返回整数的方法后,会根据该整数创建一条消息。然后将消息传递到 UIAlterView 并显示给用户。警报没有任何选项(因此我不调用委托),只是简单地通知用户发生了什么。
编辑:下面是完整的方法(以前显示的部分)。当我注释掉之前的所有内容UIAlertView
并替换字符串@“test”而不是传递消息时,警报会成功显示。我的结构没有正确处理内存吗?
当我执行代码时,iPhone 变灰,就像它即将显示警报但崩溃了。EXC_BAD_ACCESS
我在控制台中收到错误。我是否没有正确发布警报或消息?这是控制台输出:
编辑:使用基于答案删除[message release];
和分配字符串。[NSString stringWithString];
iphone - Iphone Core Data 在保存时崩溃
我目前正在使用 Core Data 编写 Iphone 应用程序,并且EXC_BAD_ACCESS
在 [managedObjectContext save:&&error] 代码行期间出现错误。此崩溃仅在我修改某些字段后发生。更具体地说,我的实体有两个字符串字段(大约 10 个字段),它们从模式视图控制器(如文本编辑器)的返回中获取它们的值。崩溃也只发生在编辑这些字段之后,我第一次在其中输入一个值就可以了。
我有带有格式构造函数的字符串只有字符串的原因是因为我试图复制构造......不确定这是否会自动发生?认为可能来自这些字符串的保留/释放消息(这两个来自模态视图控制器),在模态视图控制器或其他东西被解除时被释放。猜猜不是因为它仍然不起作用。
这是崩溃的代码部分:
[编辑]
}
这是崩溃日志:
任何帮助表示赞赏,谢谢。
更新:此外,即使程序崩溃,当我打开它备份时,数据已正确保存。所以 EXC_BAD_ACCESS 必须在保存至少足够远以存储在我认为的持久存储中之后发生。
如果我注释掉保存行,代码现在可以正常运行。但是在我关闭并退出后它不会保存。如果我在根视图控制器 willAppear 函数中运行保存行,它会引发相同的 EXC_BAD_ACCESS 错误。如果我进行回溯,控制台除了 EXC_BAD_ACCESS 什么都不会说:
抱歉,之前的代码格式不正确。当这个视图控制器被创建时,如果它不是一个新的“消息”,它会传递一个从 fetchedResultsController 获得的消息对象,如下所示:
(第一组代码来自 MessageViewController.m 文件,它是 messageView 所在的类)
只有当我将 EditorViewController 呈现为模态视图然后返回时,它才会崩溃。即使我将 textArray 和 htmlString 行(这是模态视图影响的唯一内容)更改为:
它仍然崩溃。如果我将这两行都注释掉,但它不会崩溃。
因此,如果我呈现一个模态视图然后尝试编辑我的 NSOManagedObject 的 textArray 或 htmlString 字段,它似乎会崩溃......
这是我提出观点的地方:
我在哪里解雇它:
objective-c - Objective-C 中的意外 EXC_BAD_ACCESS
我有以下方法:
代码按预期运行。
但是,如果我注释掉第 (A) 行或删除它末尾的 ",nil",我会EXC_BAD_ACCESS
在 (B) 行出现错误!根据调试器,错误发生在 +[NSArray arrayWithObjects] 内置构造函数中的 CFRetain 中。
另外,如果我注释掉行 (A) 并注释掉 for(...) 循环,则代码会运行该方法。
这对我来说是非常出乎意料的。我在 (B) 线上做错了什么?为什么会在 (A) 行创建一个完全不同的数组让该方法运行?为什么注释掉 for(...) 循环会阻止它之前的 (B) 行的错误?
有人可以解释这是为什么吗?或者至少给我一些调试建议?我已经验证了该方法只运行一次并且“self”是有效的。
iphone - 有人可以帮我了解一下 iPhone 应用程序中的这个堆栈跟踪吗?
目前我的程序中有一个非常奇怪的错误。有时会发生,有时不会。但这里是正在发生的事情的摘要:
程序启动时:
- 保存的数据(只是一个由 13 个元素组成的简短 plist)如果存在则加载。
- 一个包含 1014 个字符串的巨大 plist 被加载到 NSMutableDictionary 中。
- 另一个包含 78 个字符串的 plist 被加载到 NSArray 中。
- 播放 .mp4 电影。
错误发生在 OpenGL ES View 正在被删除并且用户即将查看 NSMutableDictionary 中 1014 个字符串中的一个字符串的部分。
模拟器中永远不会出现此错误。它只发生在 iPhone 上,有时运行良好,但有时会崩溃。
但是,在阅读了堆栈跟踪之后,我在其中看到了 CFDictionaryApplyFunction,所以我认为这可能是可能的原因之一。是不是因为在模拟器上,它读取的东西太快了,以至于 plist 中的整个字典都会立即加载,而在设备上,它的读取速度较慢?老实说,我不知道字典是如何工作的。它是瞬间读取所有 1014 个字符串,还是使用其他一些线程缓慢读取?请指教。谢谢你。
iphone - iphone调试帮助-查看对象何时释放?
我在开发我的第一个 iphone 应用程序方面还有一些方法,而且我经常遇到 exc_bad_access。(我确定这是因为我还没有以非常适合 MVC 的方式设计东西。)
试图找出为什么我总是遇到这些错误是非常令人沮丧的......在 xcode 调试器中是否有办法保持指针的监视列表,这样你就可以真正看到各种对象何时被释放?什么东西,什么东西能让我更直观地理解为什么我的程序设计有缺陷?
特别是,我的“webobject”类一直有问题,我已经将所有 NSURLConnection 方法都包装在其中。当我尝试将 performselector 调用到发起“webobject”请求的视图控制器时,当我尝试访问 webobject 的综合属性。我应该将所有与 web 服务相关的方法包装到一个可以在任何地方导入的类中的想法是否存在根本性的错误?
iphone - UIWebView EXC_BAD_ACCESS 崩溃
我遇到使用 UIWebView 的应用程序崩溃。通常是在页面没有完全加载并且 UIWebView 被发送 stopLoading 选择器的时候。或者当 UIWebView 完全加载页面时。我有EXC_BAD_ACCESS
。堆栈看起来像这样:
对我来说最奇怪的是webView:decidePolicyForNavigationAction:request:frame:decisionListener:
发送到 UIWebView 的选择器,因为 UIWebView 文档中没有这样的选择器!仅适用于 Cocoa(不是 cocoa touch)WebView。我怀疑 UIWebView 或其委托有问题。但我无法设置断点来观看它们。请告知我如何在这种情况下获得更多信息。
iphone - 设备上的 iPod Touch 调试崩溃(EXC_BAD_INSTRUCTION、EXC_BAD_ACCESS)
我使用 iPod Touch 2G 作为 Xcode 3.1.3 的开发设备。当我尝试从调试器中的断点跟踪设备上的执行时,我得到 EXC_BAD_INSTRUCTION、EXC_BAD_ACCESS 或调试器无法反汇编某些错误。同样的事情将在 iPhone 模拟器上正常工作。以前,我已经能够从其他一些 iPod Touch 2G 和 iPhone 3G 设备上的断点跟踪执行。
如果没有被断点中断,应用程序将正常工作。同样在任何“步进”之前,我可以调查当前堆栈上的变量,它们的值似乎是正确的。
该设备是否可能存在某种缺陷,或者我应该更仔细地查看我的项目配置(以及我应该寻找什么)?
编辑:在玩过项目配置后,我发现调试器在禁用“Compile for Thumb”选项后开始正常运行。现在的问题是为什么会这样?