我正在跟踪我的项目中的一个bug。有时,我的应用程序会被杀死,在logcat中总是有以下一行:
D/Zygote ( xx): Process xxxx terminated by signal (11)
我一直在搜索这个错误,我总是找到提到NDK的地方。
我正在开发一个使用第三方C库的项目。我并不十分详细地了解这个库,但我可以告诉您,它可以与服务器进行某种网络通信。在我的项目中有几个Services,其中一些使用这个库。
所以我的问题是,这个错误是否总是意味着问题来自C库?
如果没有,你能给我举例说明一下Android中的Java代码,这也会导致这个错误吗?
谢谢。
编辑:顺便说一下,在logcat输出中,在上一行之前没有堆栈跟踪。
发布于 2013-02-03 08:45:20
最有可能的是,SIGSEGV以前在您的日志中报告过。这可能要比最后的消息早一段时间。这是日志中此类崩溃之一的实际快照:
01-29 16:00:39.124 F/libc ( 3033): Fatal signal 11 (SIGSEGV) at 0x0000002c (code=1)
... many more ...
01-29 16:00:48.367 D/Zygote ( 116): Process 3033 terminated by signal (11)您可以看到,Zygote在接收到致命信号后报告进程终止花费了将近10秒的时间。你的学识可能各不相同。
SIGSEGV的实际原因可能在第三方C库中,或者在Java中,或者在调用C库的方式中。例如,请注意,在引发Java异常时,禁止进行大多数JNI调用。
https://stackoverflow.com/questions/14665200
复制相似问题