Iphone 以下错误是什么意思?

Iphone 以下错误是什么意思?,iphone,xcode,gdb,Iphone,Xcode,Gdb,EXC\u BAD\u ACCESS通常意味着您试图访问一些不再存在的东西。我们需要您的堆栈转储,可能还需要一些代码来帮助您解决问题。引用一位同事的话,“某个地方出了问题” 这意味着您试图访问不再有效的指针。也许您忘记保留某个对象,或者多次释放它 程序接收信号: “EXC_坏访问”。[切换到 进程388]终止时发生终止错误 目标(无论如何都要杀死):警告: 第2179行的错误 “/SourceCache/gdb/gdb-1472/src/gdb/macosx/macosx nat.c” 在功能上

EXC\u BAD\u ACCESS
通常意味着您试图访问一些不再存在的东西。我们需要您的堆栈转储,可能还需要一些代码来帮助您解决问题。

引用一位同事的话,“某个地方出了问题”

这意味着您试图访问不再有效的指针。也许您忘记保留某个对象,或者多次释放它

程序接收信号: “EXC_坏访问”。[切换到 进程388]终止时发生终止错误 目标(无论如何都要杀死):警告: 第2179行的错误 “/SourceCache/gdb/gdb-1472/src/gdb/macosx/macosx nat.c” 在功能上 “macosx杀戮劣质安全”:(操作系统/内核) 失败(0x5x)退出

注意错误所在的位置<代码>gdb已崩溃。这可能是由于应用程序中的崩溃造成的,但是特定的消息对于调试真正的问题肯定没有用处

而且,更可能的是,实际的崩溃与对象的过度释放无关。也许是这样,但可能不是

通常,当GDB以这种方式崩溃时,正是因为您以某种方式破坏了堆或堆栈,所以GDB在试图弄清楚发生了什么的情况时,才会跳过损坏。或者您的应用程序已进入gdb无法再与其通信的状态(鉴于崩溃位置,这里可能是这种情况)

在这种情况下,需要尝试以下几点:

  • 使用最新的开发工具?如果没有,那么也从clean重新构建应用程序

  • 能否在模拟器和设备上再现碰撞?如果是这样,是否可以在其中一个上正确调试,而不能在另一个上正确调试

  • 如果在没有调试器的情况下运行应用程序,是否可以使其崩溃,然后从设备中提取崩溃日志

  • 调试版本和非调试版本之间的行为是否发生变化?这会极大地影响内存损坏

  • 这是刚开始发生的吗?如果是的话,你最近改变了什么

想到另一个把戏

  • 尝试设置
    MallocScribble
    环境变量。这将在分配/解除分配时将值涂鸦到内存中,并且通常(至少)会导致与内存损坏相关的崩溃器更早崩溃,或者不同到足以捕获它

Nope——这个序列意味着gdb崩溃了。该应用程序可能是首先崩溃的,这是触发因素,但发布的所有内容都没有给出确切的错误线索。调试器崩溃可能意味着应用程序的内存已损坏,超出了简单的过度发布。感谢您的澄清!EXC_BAD_ACCESS只是指有时;有时这意味着你偶然发现了损坏的记忆。在这种情况下,是调试器崩溃,这意味着原始应用程序中的崩溃可能不是典型的保留/发布问题。为什么调试器会崩溃,有什么错误不是源于op代码中的错误?@6NSString:调试器是一个程序。程序可能崩溃。因此,调试器可能会崩溃。这可能是gdb中的一个错误,也可能是程序中的一个错误,也可能是提问者下一步要解决的问题。调试器是一个有bug的程序。它还必须遍历那些经常出轨的应用程序的内存。有时,这意味着运行在损坏的数据结构上&有时损坏对调试器来说太多了,它崩溃了。这就是我的意思,gdb崩溃了,但如果它是调试没有损坏内存的代码,它(很可能)就不会崩溃。这肯定是一个非常现实的问题;我见过这样的案例,这几乎是给出的全部线索。艰难的一个。我最后投票选出了剩下的答案。。。他们是不对的,但他们也不应受惩罚。这是一个很难对付的错误。如果您作为一个相对较新的开发人员进行了直接的开发,并且遇到了这样的情况,那么过度发布的假设将是很容易和自然的。。。当你试图弄清楚到底发生了什么时,你完全困惑不解。
Program received signal:  “EXC_BAD_ACCESS”.
[Switching to process 388]
kill
error while killing target (killing anyway): warning: error on line 2179 of "/SourceCache/gdb/gdb-1472/src/gdb/macosx/macosx-nat-inferior.c" in function "macosx_kill_inferior_safe": (os/kern) failure (0x5x)
quit

The Debugger has exited with status 0.(gdb)