当前位置: 首页 > 知识库问答 >
问题:

检测到堆栈损坏,dalvik VM崩溃

苍志文
2023-03-14

我有一个在android平板上运行的跟踪器应用程序。我注意到有些平板电脑会时不时地重新启动。

当我调查这个问题时,发现我得到了“检测到堆栈损坏”错误,然后几毫秒后android VM崩溃。

这些崩溃每5分钟到20分钟发生一次,没有其他模式,然后跟踪应用程序运行和使用GPS和3G。

以下是logcat输出:

05-11 15:33:16.084: A/<unknown>(30963): stack corruption detected: aborted
05-11 15:33:16.116: I/ServiceManager(99): service 'bluetooth_manager' died
05-11 15:33:16.155: I/ServiceManager(99): service 'bluetooth_secure_mode_manager' died
05-11 15:33:16.155: I/ServiceManager(99): service 'input_method' died
05-11 15:33:16.155: I/ServiceManager(99): service 'accessibility' died
05-11 15:33:16.155: I/ServiceManager(99): service 'meminfo' died
05-11 15:33:16.155: I/ServiceManager(99): service 'DirEncryptService' died
05-11 15:33:16.155: I/ServiceManager(99): service 'container_service' died
05-11 15:33:16.155: I/ServiceManager(99): service 'audio' died
05-11 15:33:16.155: I/ServiceManager(99): service 'wallpaper' died
05-11 15:33:16.155: I/ServiceManager(99): service 'display' died
05-11 15:33:16.155: I/ServiceManager(99): service 'power' died
05-11 15:33:16.155: I/ServiceManager(99): service 'activity' died
05-11 15:33:16.155: I/ServiceManager(99): service 'CustomFrequencyManagerService' died
05-11 15:33:16.155: I/ServiceManager(99): service 'gfxinfo' died
05-11 15:33:16.155: I/ServiceManager(99): service 'usagestats' died
05-11 15:33:16.155: I/ServiceManager(99): service 'content' died
05-11 15:33:16.155: I/ServiceManager(99): service 'log_manager_service' died
05-11 15:33:16.155: I/ServiceManager(99): service 'cpuinfo' died
05-11 15:33:16.155: I/ServiceManager(99): service 'account' died
05-11 15:33:16.155: I/ServiceManager(99): service 'telephony.registry' died
05-11 15:33:16.155: I/ServiceManager(99): service 'battery' died
05-11 15:33:16.155: I/ServiceManager(99): service 'entropy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'mount' died
05-11 15:33:16.155: I/ServiceManager(99): service 'sensorservice' died
05-11 15:33:16.155: I/ServiceManager(99): service 'dbinfo' died
05-11 15:33:16.155: I/ServiceManager(99): service 'vibrator' died
05-11 15:33:16.155: I/ServiceManager(99): service 'mdm.remotedesktop' died
05-11 15:33:16.155: I/ServiceManager(99): service 'alarm' died
05-11 15:33:16.155: I/ServiceManager(99): service 'scheduling_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'hardware' died
05-11 15:33:16.155: I/ServiceManager(99): service 'user' died
05-11 15:33:16.155: I/ServiceManager(99): service 'permission' died
05-11 15:33:16.155: I/ServiceManager(99): service 'batteryinfo' died
05-11 15:33:16.155: I/ServiceManager(99): service 'edmnativehelper' died
05-11 15:33:16.155: I/ServiceManager(99): service 'harmony_eas_service' died
05-11 15:33:16.155: I/ServiceManager(99): service 'enterprise_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'remoteinjection' died
05-11 15:33:16.155: I/ServiceManager(99): service 'clipboard' died
05-11 15:33:16.155: I/ServiceManager(99): service 'clipboardEx' died
05-11 15:33:16.155: I/ServiceManager(99): service 'netstats' died
05-11 15:33:16.155: I/ServiceManager(99): service 'textservices' died
05-11 15:33:16.155: I/ServiceManager(99): service 'statusbar' died
05-11 15:33:16.155: I/ServiceManager(99): service 'application_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'wifi_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'package' died
05-11 15:33:16.155: I/ServiceManager(99): service 'phone_restriction_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'network_management' died
05-11 15:33:16.155: I/ServiceManager(99): service 'enterprise_license_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'window' died
05-11 15:33:16.155: I/ServiceManager(99): service 'input' died
05-11 15:33:16.155: I/ServiceManager(99): service 'netpolicy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'multiwindow' died
05-11 15:33:16.155: I/ServiceManager(99): service 'wifip2p' died
05-11 15:33:16.155: I/ServiceManager(99): service 'sec_analytics' died
05-11 15:33:16.155: I/ServiceManager(99): service 'wifi' died
05-11 15:33:16.155: I/ServiceManager(99): service 'wfd' died
05-11 15:33:16.155: I/ServiceManager(99): service 'notification' died
05-11 15:33:16.155: I/ServiceManager(99): service 'dropbox' died
05-11 15:33:16.155: I/ServiceManager(99): service 'devicestoragemonitor' died
05-11 15:33:16.155: I/ServiceManager(99): service 'search' died
05-11 15:33:16.155: I/ServiceManager(99): service 'country_detector' died
05-11 15:33:16.155: I/ServiceManager(99): service 'location' died
05-11 15:33:16.155: I/ServiceManager(99): service 'updatelock' died
05-11 15:33:16.155: I/ServiceManager(99): service 'throttle' died
05-11 15:33:16.155: I/ServiceManager(99): service 'servicediscovery' died
05-11 15:33:16.155: I/ServiceManager(99): service 'connectivity' died
05-11 15:33:16.155: I/ServiceManager(99): service 'lock_settings' died
05-11 15:33:16.155: I/ServiceManager(99): service 'device_policy' died
05-11 15:33:16.155: I/ServiceManager(99): service 'usb' died
05-11 15:33:16.155: I/ServiceManager(99): service 'serial' died
05-11 15:33:16.155: I/ServiceManager(99): service 'uimode' died
05-11 15:33:16.155: I/ServiceManager(99): service 'backup' died
05-11 15:33:16.155: I/ServiceManager(99): service 'appwidget' died
05-11 15:33:16.155: I/ServiceManager(99): service 'diskstats' died
05-11 15:33:16.155: I/ServiceManager(99): service 'AtCmdFwd' died
05-11 15:33:16.155: I/ServiceManager(99): service 'samplingprofiler' died
05-11 15:33:16.155: I/ServiceManager(99): service 'commontime_management' died
05-11 15:33:16.155: I/ServiceManager(99): service 'motion_recognition' died
05-11 15:33:16.155: I/ServiceManager(99): service 'voip' died
05-11 15:33:16.155: I/ServiceManager(99): service 'dreams' died
05-11 15:33:16.155: I/ServiceManager(99): service 'license_log_service' died
05-11 15:33:16.162: W/AudioFlinger(30688): power manager service died !!!
05-11 15:33:16.170: I/audio_policy_mrvl(30688): mrvl_ap_dev_release_output: 2 (hardware output)
05-11 15:33:16.170: I/audio_policy_mrvl(30688): mrvl_ap_dev_release_output: 2 (hardware output)
05-11 15:33:16.178: W/Sensors(31110): sensorservice died [0x5d194240]
05-11 15:33:16.178: W/Sensors(31315): sensorservice died [0x5d1b4d70]
05-11 15:33:16.178: W/Sensors(31217): sensorservice died [0x5bab4fa0]
05-11 15:33:16.178: W/Sensors(31204): sensorservice died [0x5d1ae190]
05-11 15:33:16.178: W/Sensors(2742): sensorservice died [0x5d13c0e8]
05-11 15:33:16.186: D/SurfaceFlinger(111): Screen acquired, type=0 flinger=0x405083c8
05-11 15:33:16.186: D/SurfaceFlinger(111):  screen was previously acquired
05-11 15:33:16.373: D/AndroidRuntime(31204): Shutting down VM
05-11 15:33:16.373: W/dalvikvm(31204): threadid=1: thread exiting with uncaught exception (group=0x40dee930)
05-11 15:33:16.420: E/AndroidRuntime(31204): FATAL EXCEPTION: main
05-11 15:33:16.420: E/AndroidRuntime(31204): java.lang.RuntimeException: android.os.DeadObjectException
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.net.TrafficStats.getMobileIfaces(TrafficStats.java:641)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.net.TrafficStats.getMobileTxPackets(TrafficStats.java:270)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at com.android.internal.telephony.DataConnectionTracker$TxRxSum.updateTxRxSum(DataConnectionTracker.java:510)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at com.android.internal.telephony.DataConnectionTracker.updateDataActivity(DataConnectionTracker.java:1566)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at com.android.internal.telephony.DataConnectionTracker$2.run(DataConnectionTracker.java:431)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.os.Handler.handleCallback(Handler.java:725)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.os.Looper.loop(Looper.java:176)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.app.ActivityThread.main(ActivityThread.java:5365)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at java.lang.reflect.Method.invokeNative(Native Method)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at java.lang.reflect.Method.invoke(Method.java:511)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at dalvik.system.NativeStart.main(Native Method)
05-11 15:33:16.420: E/AndroidRuntime(31204): Caused by: android.os.DeadObjectException
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.os.BinderProxy.transact(Native Method)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.net.INetworkStatsService$Stub$Proxy.getMobileIfaces(INetworkStatsService.java:232)
05-11 15:33:16.420: E/AndroidRuntime(31204):    at android.net.TrafficStats.getMobileIfaces(TrafficStats.java:639)
05-11 15:33:16.420: E/AndroidRuntime(31204):    ... 13 more
05-11 15:33:16.452: E/installd(116): eof
05-11 15:33:16.452: E/installd(116): failed to read size
05-11 15:33:16.452: I/installd(116): closing connection
05-11 15:33:16.452: I/Process(31204): Sending signal. PID: 31204 SIG: 9
05-11 15:33:16.452: E/AndroidRuntime(31204): Error reporting crash
05-11 15:33:16.452: E/AndroidRuntime(31204): android.os.DeadObjectException
05-11 15:33:16.452: E/AndroidRuntime(31204):    at android.os.BinderProxy.transact(Native Method)
05-11 15:33:16.452: E/AndroidRuntime(31204):    at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:3624)
05-11 15:33:16.452: E/AndroidRuntime(31204):    at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:138)
05-11 15:33:16.452: E/AndroidRuntime(31204):    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
05-11 15:33:16.452: E/AndroidRuntime(31204):    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
05-11 15:33:16.452: E/AndroidRuntime(31204):    at dalvik.system.NativeStart.main(Native Method)
05-11 15:33:16.467: I/ServiceManager(99): service 'phone' died
05-11 15:33:16.467: I/ServiceManager(99): service 'isms' died
05-11 15:33:16.467: I/ServiceManager(99): service 'phoneext' died
05-11 15:33:16.467: I/ServiceManager(99): service 'iphonesubinfo' died
05-11 15:33:16.467: I/ServiceManager(99): service 'sip' died
05-11 15:33:16.467: I/ServiceManager(99): service 'simphonebook' died
05-11 15:33:16.467: I/audio_policy_mrvl(30688): mrvl_ap_dev_release_output: 2 (hardware output)
05-11 15:33:16.608: I/BootAnimation(6191): ret=2, fps:12, interval:83333
05-11 15:33:16.639: I/BootAnimation(6191): createSurface RGB565
05-11 15:33:16.639: E/BootAnimation(6191): /sys/class/sec/led/led_pattern: open error, fd = -1
05-11 15:33:16.639: W/BootAnimation(6191): resolution w=600, h=1024
05-11 15:33:16.639: W/BootAnimation(6191): original qmg w=600, h=1024
05-11 15:33:17.233: E/InputEventReceiver(31217): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.444: E/InputEventReceiver(31110): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.444: E/Sensors(31315): SensorEventQueue::waitForEvent error HANGUP
05-11 15:33:17.444: E/InputEventReceiver(835): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.452: E/InputEventReceiver(31110): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.452: E/InputEventReceiver(835): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.452: E/InputEventReceiver(835): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.452: E/InputEventReceiver(835): channel ~ Publisher closed input channel or an error occurred.  events=0x9
05-11 15:33:17.452: D/Zygote(30691): Process 30963 terminated by signal (6)
05-11 15:33:17.452: I/Zygote(30691): Exit zygote because system server (30963) has terminated
05-11 15:33:17.616: I/Netd(6197): Netd 1.0 starting
05-11 15:33:17.623: W/InterfaceController(6197): Warning (Cannot load library: load_library(linker.cpp:745): library "/system/lib/libnetcmdiface.so" not found) while opening the net interface command library
05-11 15:33:17.772: E/SMD(107): DCD OFF
05-11 15:33:17.928: I/ServiceManager(99): service 'media.audio_flinger' died
05-11 15:33:17.928: I/ServiceManager(99): service 'media.player' died
05-11 15:33:17.928: I/ServiceManager(99): service 'media.camera' died
05-11 15:33:17.928: I/ServiceManager(99): service 'media.audio_policy' died
05-11 15:33:17.936: D/FileMonitorService(120): binderDied() 1 0x40918c90, tid 158, calling tid 120

共有1个答案

季小云
2023-03-14

那不是你的应用崩溃了。这是Android运行时崩溃,它带走了所有东西(包括你的应用程序)。

任何时候看到一大堆服务死掉,您都知道system_server已经死了。一些特定的日志突出了故障:

05-11 15:33:16.084: A/<unknown>(30963): stack corruption detected: aborted
[...]
05-11 15:33:17.452: D/Zygote(30691): Process 30963 terminated by signal (6)
05-11 15:33:17.452: I/Zygote(30691): Exit zygote because system server (30963) has terminated

第一个将本机system_server堆的堆栈损坏确定为故障原因,其他两个将pid 30963确定为system_server。信号6是SIGABRT,它是system_server在检测到损坏时发送给它自己的。

这不是你能修复的--平台上有一个bug,而不是你的应用程序。我的猜测是system_server中运行了一些坏代码,可能是OEM引入的,而您的应用程序正在执行这些代码。您可能可以通过更改应用程序的行为来解决这个问题,而不需要更多地了解可能很困难的bug。如果该设备在4.2.2之前没有更新,那么就不太可能从制造商那里获得系统的修复。

通过使用adb logcat-v threadtime收集日志以显示线程ID,然后查看哪个线程报告了损坏,您可能可以了解更多信息。崩溃前的adb shell ps-t可能会给线程一个有意义的标签。当然,对于本机损坏,任何线程都可能踩到任何其他线程,但是对于堆栈损坏,更有可能是线程在伤害自己。

 类似资料:
  • 问题内容: 我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ) 修复给定的表非常简单 但是我无法检测到损坏的字符。如果我做类似的事情 由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符 到目前为止,我得到的损坏字符列表是 是否知道如何使此SELECT正

  • 问题内容: 我收到了一些来自Android的崩溃报告(带有java.lang.NullPointerException),但 我不明白 下面的 stacktrace 中的 __null __是什么意思 : 而且我不明白什么是access $ xxx函数? 此外,既不直接也不间接从onEnterPressed调用formatElapsedTime!绝对是!从计时器线程通过runOnUiThread调

  • 我需要一个快速的Java方法来检查JPEG文件是否有效,或者它是否是一个被截断/损坏的图像。 我试着用几种方法: > 使用javax.imageio库 我正在寻找一个Java替代UNIX程序jpeginfo,它大约快10倍(在我的PC上,大约10个图像/秒)。

  • 前言我改了标题。很难理解为什么在调试时,有时未被捕获的异常会向Logcat输出“致命异常”,而有时不会。 下面的简化示例在我到达 line 时崩溃了。Logcat 内部没有堆栈跟踪或其他指示,说明出了什么问题。我运行的是 Android Studio 3.0.0beta4。 为什么它会崩溃?(更新-崩溃是由于安全例外) 为什么Logcat不显示堆栈跟踪或其他错误 更新好了,我知道它为什么崩溃了。我

  • 我们正在使用Apache Camel(Camel 2.10.3,Java基于DSL)构建一个集成项目。 我们有一个路由,每天从数据库中提取数据(让我们称之为IN_DB),执行一些逻辑并插入另一个数据库(OUT_DB),另一个路由订阅XML数据的JMS主题,执行一些逻辑并全天插入同一个数据库(OUT_DB)。 需求是,当JMS主题连接因任何原因中断时,我们会一直尝试无限期地重新连接,一旦重新连接成功

  • 问题内容: 有些人认为这样做存在一些缺陷,即使正确使用也无法保护您的查询。 带一些化石的物品作为证明。 因此,问题是:mysql [i] _real escape_string()完全不可接受吗? 还是仍然可以使用此功能来创建自己的预备语句? 请提供校对码。 问题答案: 从MySQL的C API函数描述 : 如果需要更改连接的字符集,则应使用函数而不是执行(或)语句。的工作方式类似,但也会影响所使