致命信号 7 (SIGBUS) 在 0x00000000 (code=2)

Posted

技术标签:

【中文标题】致命信号 7 (SIGBUS) 在 0x00000000 (code=2)【英文标题】:Fatal signal 7 (SIGBUS) at 0x00000000 (code=2) 【发布时间】:2012-10-16 04:19:02 【问题描述】:

android 上使用 OSGi 平台时,我收到了这个错误消息:

致命信号 7 (SIGBUS) 位于 0x595302e0(代码=2)

我认为我的应用不需要那么多内存空间或需要大量计算能力。 它只是具有 20 个捆绑包的 OSGi 平台。

在那之后我的应用总是重新启动。

有什么想法吗?

【问题讨论】:

嗨,我遇到了同样的错误..运气好吗? libc(16581):致命信号 7 (SIGBUS) 位于 0xab5a4068 (code=2),线程 16590 (FinalizerDaemon) 不,很抱歉。没有进展。 ok :( thnks :) ...你能告诉我你到底哪里出错了吗? 【参考方案1】:

即使我也发现了一个类似的问题,并且恰好是(代码=128)关于错误。似乎是数据对齐错误。为了解决这个问题,我尝试了这样的代码:

    *Data = (*Data)(Temp+i) becomes     
    Temp1 = *(Temp+i);     
    *Data = Temp1;     

在函数调用之前和之后,使用与上述相同的方法传回数据。碰巧NDK编译器的工作方式有所不同。 NDK用于c和c++的混合编码。

【讨论】:

【参考方案2】:

我遇到了同样的问题。它是由可绘制文件夹中的 png 文件引起的。我刚才去看了,最大的图是什么,找到了,删了,换成更小的,问题就解决了。

【讨论】:

【参考方案3】:

这是Data Alignment 的问题,如error code 所示。您的代码的某些部分或您正在使用的库中的代码可能无法将数据结构放在正确的位置 - 但是,这可能是由很多事情引起的,例如应该返回某些内容但没有返回的函数不。

【讨论】:

以上是关于致命信号 7 (SIGBUS) 在 0x00000000 (code=2)的主要内容,如果未能解决你的问题,请参考以下文章

信号 7 (SIGBUS),代码 2 (BUS_ADRERR)

Android RenderScript 信号 7 (SIGBUS),代码 1 (BUS_ADRALN),故障地址 0x76f458b4 Adreno 306、320

原生Android应用程序中的SIGSEGV错误

SIGBUS(Bus error singal 7)

SIGBUS(Bus error singal 7)

GCD dispatch_after 调用导致 SIGBUS 信号