本文介绍了崩溃因"堆栈损坏检测:中止"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近收到的投诉从我的应用程序已崩溃的用户。我已经提取了用户的错误日志以下,并能理解为什么问题在哪里发生了什么:

I recently received complaint from a user that my app was crashing. I've extracted the following from the user's error logs and was able to see why issues where happening:

12-17 10:31:12.446 I/PLAYLIST( 3158): PreparePlaylist
12-17 10:31:12.446 I/PLAYLIST( 3158): URL: http://f69cbd7a-3d91-4bf5-b4c6-ddb1175cf9e9.d40f2093-2013-4ad9-aec2-e99b015d61ca.070305e7-a706-4626-9ecb-777835065841.groovera.com/listen.pls
12-17 10:31:12.456 F/unknown ( 3158): stack corruption detected: aborted
12-17 10:31:12.466 D/Zygote  ( 2204): Process 3158 terminated by signal (6)
12-17 10:31:12.471 I/ActivityManager( 2256): Process com.android.Player:remote (pid 3158) has died.

有检测到堆栈损坏。太好了,让我怎么找出为什么这是怎么回事?

There was a stack corruption detected. Great, so how do I find out why that's happening?

我认为这个问题是发生在这个特殊的类,因为我期待从中更多的日志输出前就去世了。这个类使用套接字下载播放列表并解析它。我怎么会破坏栈?我处理过的C / C ++栈溢出,但我怎么处理它的Java?

I think the issue is happening at this particular class since I was expecting more log output from it before it died. This class uses sockets to download playlist and parse it. How could I be corrupting the stack? I have dealt with stack overflows in C/C++, but how do I handle it in Java?

感谢您的帮助!

推荐答案

该消息表示本地栈的腐败。 code检测堆栈缓冲区溢出时,gcc的标志-fstack保护器是用来插入。

The message indicates corruption of the native stack. Code to detect stack buffer overflows is inserted when the gcc flag "-fstack-protector" is used.

如果您的应用程序没有任何JNI code,那么这很可能是在Android平台上的错误。

If your app doesn't have any JNI code, then this could very well be a bug in the Android platform.

如果你有办法转载本文,请提交错误上b.android.com的细节。

If you have a way to reproduce this, please file a bug on b.android.com with the details.

这篇关于崩溃因"堆栈损坏检测:中止"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 00:39