应用程序死于"发送信号".但没有例外或其他信息

9us*_*9us 14 android

我正在研究一种通过蓝牙记录数据的应用程序,但是在收集数据数小时后它会间歇性地崩溃(这使得很难找到错误).

logcat输出不是很有帮助:

http://i.imgur.com/EalnX.png

没有抛出异常,也没有任何线索导致进程被终止.

我怎么能弄清楚出了什么问题?是否有抛出的异常没有被logcat显示?如何跟踪此错误?

P.T*_*.T. 12

信号9是SIGKILL,它将立即终止进程(进程内的处理程序不会运行).从日志行开始,进程自杀,因此它不是发出SIGKILL的外部代理.

我的猜测(实际上是猜测)是在你的进程中运行的内存管理代码(作为基础结构的一部分,而不是你编写的代码)决定你已经耗尽了一些资源,而唯一的办法就是死掉.我希望在日志中达到此点之前会有更多消息,因此可能值得浏览日志历史记录,以查看此前此过程中是否存在有用的警告.

紧接在此之前的行是GC日志,这意味着某种内存资源正在运行.但看起来堆不够,所以分配失败似乎不太可能.如果分配的对象太大而无法容纳在堆上,或者碎片阻止分配它,您仍然可以获得分配失败.不过,在这种情况下,我希望看到更多相关的日志消息.

我认为捕获更多日志(如果需要可能通过应用程序的PID过滤它)将帮助您取得进展.

  • 你是对的,我在日志中提到的一些信息是我忽略的.谢谢! (3认同)