Android本机应用程序即使在具有相同PID的分段错

时间:2014-03-26 06:56:14

标签: android android-ndk segmentation-fault embedded sigfpe

我在i.MX51主板上运行自定义android,并发现应用程序存在一个奇怪的问题。

我在应用程序(本机,使用NDK编写)的分段错误的logcat中记录了日志:

03-19 15:26:46.763 I/DEBUG   ( 2234): pid: 2257, tid: 2257  >>> /usr/bin/powerMgr <<<
03-19 15:26:46.763 I/DEBUG   ( 2234): signal 8 (SIGFPE), code 0 (?), fault addr 000008d1

即使在此之后,应用程序继续运行相同的PID(2257),我从logcat和ps命令确认。这可能吗 ?如果是,怎么??

1 个答案:

答案 0 :(得分:1)

这不是分段错误(SIGSEGV,信号11)。你有SIGFPE信号8,可能是整数除零的结果。信号处理没有杀死进程,所以它只是继续执行。

许多ARM CPU缺少硬件除法指令,因此SIGFPE显式地从软件除法功能中抛出。因此,您在“fault addr”中没有获得有意义的值。

对此的处理随着时间的推移而发生变化;更新版本的Android会更好一些。