gpt4 book ai didi

android - 调试 native Android 崩溃的最佳方法?

转载 作者:太空狗 更新时间:2023-10-29 15:26:14 24 4
gpt4 key购买 nike

我的 Xamarin Android 应用程序随机崩溃,导致 native Android 堆栈跟踪。这些堆栈跟踪包含很少的实际信息,我不知道如何从这里继续。

一些背景信息:应用程序主要显示不同 fragment 和 Activity 中的远程 (http) 图像列表。 App基于MvvmCross,主要使用MvxRecyclerview + MvxImageView来展示图片。滚动和浏览某些列表后会发生崩溃。崩溃主要发生在返回到 backstack 上的 Activity 时。

我最好的猜测是图像在实际仍在使用时就被处理了。但是,即使在使用时强制处理图像,这也不会导致崩溃,而是导致图像不显示。所以我不再确定我的理论。

我该怎么做才能从此堆栈跟踪中获取更多信息?

堆栈跟踪:

[mono-rt] 
[mono-rt] Attempting native Android stacktrace:
[mono-rt]
[mono-rt] at ???+0 [0xb6fa9dbf]
[mono-rt] at ???+0 [0xb6f94838]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ZN7android10uirenderer10RenderNode11prepareTreeERNS0_8TreeInfoE+73 [0xb6f946a9]
[mono-rt] at _ZN7android14RootRenderNode11prepareTreeERNS_10uirenderer8TreeInfoE+44 [0xb7671dec]
[mono-rt] at ???+44 [0xb6fadf5a]
[mono-rt] at ???+44 [0xb6fb0010]
[mono-rt] at _ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+153 [0xb6fb4cc9]
[mono-rt] at _ZN7android6Thread11_threadLoopEPv+398 [0xb74219de]
[mono-rt] at _ZN7android14AndroidRuntime15javaThreadShellEPv+98 [0xb7623c62]
[mono-rt] at _ZN13thread_data_t10trampolineEPKS+122 [0xb74210fa]
[mono-rt] at _ZL15__pthread_startPv+56 [0xb749c218]
[mono-rt] at __start_thread+25 [0xb7497599]
[mono-rt] at __bionic_clone+70 [0xb748e166]
[mono-rt]
[mono-rt] =================================================================
[mono-rt] Got a SIGSEGV while executing native code. This usually indicates
[mono-rt] a fatal error in the mono runtime or one of the native libraries
[mono-rt] used by your application.
[mono-rt] =================================================================
[mono-rt]
[libc] Fatal signal 11 (SIGSEGV), code 1, fault addr 0x34 in tid 22303 (RenderThread)

更新

Logcat 输出包含更多信息。以前的输出来自 Xamarin App 控制台输出。

09-24 09:40:25.957: A/libc(3495): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x34 in tid 3517 (RenderThread)
09-24 09:40:26.058: I/DEBUG(66): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-24 09:40:26.058: I/DEBUG(66): Build fingerprint: 'generic/vbox86p/vbox86p:5.1/LMY47D/lc09011706:userdebug/test-keys'
09-24 09:40:26.058: I/DEBUG(66): Revision: '0'
09-24 09:40:26.058: I/DEBUG(66): ABI: 'x86'
09-24 09:40:26.058: I/DEBUG(66): pid: 3495, tid: 3517, name: RenderThread >>> digipolis.ama.beta.staging <<<
09-24 09:40:26.058: I/DEBUG(66): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x34
09-24 09:40:26.066: I/DEBUG(66): eax 00000000 ebx b704b508 ecx 00000000 edx 00000000
09-24 09:40:26.066: I/DEBUG(66): esi a05d130c edi 9d219b50
09-24 09:40:26.066: I/DEBUG(66): xcs 00000073 xds 0000007b xes 0000007b xfs 00000087 xss 0000007b
09-24 09:40:26.066: I/DEBUG(66): eip b701adbf ebp a09f9124 esp a05d12d0 flags 00210246
09-24 09:40:26.066: I/DEBUG(66): backtrace:
09-24 09:40:26.066: I/DEBUG(66): #00 pc 0007edbf /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #01 pc 00069838 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #02 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #03 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #04 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #05 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #06 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #07 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #08 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #09 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #10 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #11 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #12 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #13 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #14 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #15 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #16 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #17 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #18 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #19 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #20 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #21 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #22 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #23 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #24 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #25 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #26 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #27 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #28 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #29 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #30 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #31 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #32 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #33 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #34 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #35 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #36 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #37 pc 000696a9 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTree(android::uirenderer::TreeInfo&)+73)
09-24 09:40:26.067: I/DEBUG(66): #38 pc 000bfdec /system/lib/libandroid_runtime.so (android::RootRenderNode::prepareTree(android::uirenderer::TreeInfo&)+44)
09-24 09:40:26.067: I/DEBUG(66): #39 pc 00082f5a /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #40 pc 00085010 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #41 pc 00089cc9 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+153)
09-24 09:40:26.067: I/DEBUG(66): #42 pc 000169de /system/lib/libutils.so (android::Thread::_threadLoop(void*)+398)
09-24 09:40:26.067: I/DEBUG(66): #43 pc 00071c62 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
09-24 09:40:26.067: I/DEBUG(66): #44 pc 000160fa /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+122)
09-24 09:40:26.067: I/DEBUG(66): #45 pc 00021218 /system/lib/libc.so (__pthread_start(void*)+56)
09-24 09:40:26.067: I/DEBUG(66): #46 pc 0001c599 /system/lib/libc.so (__start_thread+25)
09-24 09:40:26.067: I/DEBUG(66): #47 pc 00013166 /system/lib/libc.so (__bionic_clone+70)
09-24 09:40:26.129: I/DEBUG(66): Tombstone written to: /data/tombstones/tombstone_03

最佳答案

您可能想尝试我对上一篇帖子的回答中的一些建议。如果 Visual Studio 没有打破异常,那么可以先尝试 #2。然后,如果你能让它真正崩溃,那么#3 可能会在那时有所帮助。如果您找到更好的解决方案,一定要告诉我们。

https://stackoverflow.com/a/32655244/3850012

简单介绍一下:

#2 谈论 Hook 到 Android 的异常事件并在其中设置断点,这使我能够真正地中断 Visual Studio 中的异常,以前,只会使应用程序崩溃并停止调试器。

#3 讨论在异常详细信息中在哪里可以找到更多有用的信息,一旦您能够正确中断,就会告诉您异常可能来自哪个文件和行。

在处理异步操作时,上一篇文章的答案对我很有帮助,但希望您也能从中找到一些用处。

关于android - 调试 native Android 崩溃的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com