gpt4 book ai didi

android - 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:55:00 27 4
gpt4 key购买 nike

我正在使用 OpenGL 在 Android 上创建一个 2D 游戏。目前我正在几台设备上测试和调试游戏。我面临的问题是可怕的“信号 11”错误。

当我在我的 Samsung Galaxy Nexus 上玩游戏时,一切都很顺利,我可以玩几个小时而不会出现任何错误。我的 Nexus 正在运行 Android 4.0 Ice Cream Sandwich .

现在,当我在其他设备上运行它时,我收到此信号 11 错误。这是引发错误的设备:

  • HTC Desire HD( Gingerbread )
  • HTC Desire Z( Gingerbread )
  • HTC Wildfire( Gingerbread )
  • Advent Vega 平板电脑 (Vegacomb)
  • Asus EE Pad Transformer( Ice Cream Sandwich )

我无法在我的 Advent Vega 上使用 USB 调试,但弹出错误的其他 3 个设备是可调试的。看来我需要对我的设备进行 root 操作才能获得有关信号 11 错误的更多信息。我能够 root 我的 Galaxy Nexus 和我的 Desire HD。

由于错误似乎总是在同一时刻出现(当游戏刚刚完成加载纹理时),我想我可以只用一台 root 设备找出问题的原因,然后修复它,并在另一台设备上测试新版本。

首先我认为它与内存管理有关(不释放我的对象,因此执行大量 GC 请求)。因此,经过几个小时的分析、优化、测试等,我发现这不是问题所在。

然后我假设它与线程安全有关(一个线程试图从内存中获取一些东西,而另一个线程刚刚破坏了引用)。但似乎也不是这样。

好的,现在我已经将我的 Desire HD 连接到我的笔记本电脑上,并且我打开了我的 Eclipse 项目并且 DDMS运行。

现在,当游戏/应用程序崩溃时,logcat 会告诉我什么?

04-02 13:24:50.561: D/dalvikvm(3526): GC_CONCURRENT freed 739K, 43% free 4225K/7303K, external 1478K/1939K, paused 2ms+4ms
04-02 13:24:50.661: D/dalvikvm(3526): GC_FOR_MALLOC freed 99K, 43% free 4261K/7431K, external 1466K/1939K, paused 29ms
04-02 13:24:50.701: I/DEBUG(3412): debuggerd: 2012-04-02 13:24:50
04-02 13:24:50.701: I/DEBUG(3412): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-02 13:24:50.701: I/DEBUG(3412): Build fingerprint: 'vodafone_uk/htc_ace/ace:2.3.5/GRJ90/208029.3:user/release-keys'
04-02 13:24:50.701: I/DEBUG(3412): pid: 3526, tid: 3539 >>> com.more2create.cityisland <<<
04-02 13:24:50.701: I/DEBUG(3412): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0088d410
04-02 13:24:50.701: I/DEBUG(3412): r0 4b89de00 r1 0088d410 r2 00000000 r3 00000000
04-02 13:24:50.701: I/DEBUG(3412): r4 00000000 r5 00000000 r6 00000020 r7 00000001
04-02 13:24:50.701: I/DEBUG(3412): r8 45a98b68 r9 458dbde0 10 0034f598 fp 440b0000
04-02 13:24:50.701: I/DEBUG(3412): ip 806091c8 sp 45a989d0 lr 80602a0c pc afd0d200 cpsr 60000010
04-02 13:24:50.701: I/DEBUG(3412): d0 42a0000000000000 d1 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d2 0000000042200000 d3 4220000042a00000
04-02 13:24:50.701: I/DEBUG(3412): d4 000000003df5c2a0 d5 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d6 0000000000000101 d7 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d8 3f8000003f800000 d9 8000000080000000
04-02 13:24:50.701: I/DEBUG(3412): d10 8000000080000000 d11 3ff0000080000000
04-02 13:24:50.701: I/DEBUG(3412): d12 3f8000003f800000 d13 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d14 0000000000000000 d15 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d16 000172c000000000 d17 7e37e43c8800759c
04-02 13:24:50.701: I/DEBUG(3412): d18 3fff8def8808b024 d19 465aa3f469f40e1c
04-02 13:24:50.701: I/DEBUG(3412): d20 4008000000000000 d21 3fd99a27ad32ddf5
04-02 13:24:50.701: I/DEBUG(3412): d22 3fd24998d6307188 d23 3fcc7288e957b53b
04-02 13:24:50.701: I/DEBUG(3412): d24 3fc74721cad6b0ed d25 3fc39a09d078c69f
04-02 13:24:50.701: I/DEBUG(3412): d26 0000000000000000 d27 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d28 0000000000000000 d29 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): d30 0000000000000000 d31 0000000000000000
04-02 13:24:50.701: I/DEBUG(3412): scr 60000012
04-02 13:24:50.741: I/DEBUG(3412): #00 pc 0000d200 /system/lib/libc.so
04-02 13:24:50.741: I/DEBUG(3412): #01 pc 00002a08 /system/lib/libgsl.so
04-02 13:24:50.741: I/DEBUG(3412): #02 pc 00089e24 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #03 pc 00091f14 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #04 pc 0006087a /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #05 pc 00060942 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #06 pc 00063210 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #07 pc 000835e0 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #08 pc 00014504 /system/lib/egl/libGLESv1_CM_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #09 pc 0001d3c0 /system/lib/egl/libGLESv1_CM_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): #10 pc 0002be40 /system/lib/libandroid_runtime.so
04-02 13:24:50.741: I/DEBUG(3412): #11 pc 00018174 /system/lib/libdvm.so
04-02 13:24:50.741: I/DEBUG(3412): code around pc:
04-02 13:24:50.741: I/DEBUG(3412): afd0d1e0 f5d1f100 e2522040 f400022d f400422d
04-02 13:24:50.741: I/DEBUG(3412): afd0d1f0 2afffff8 e2822040 e2522020 3a000003
04-02 13:24:50.741: I/DEBUG(3412): afd0d200 f421020d e2522020 f400022d 2afffffb
04-02 13:24:50.741: I/DEBUG(3412): afd0d210 e2822020 e3120010 0a000001 f4210a0d
04-02 13:24:50.741: I/DEBUG(3412): afd0d220 f4000a2d e1b0ce82 3a000001 f421070d
04-02 13:24:50.741: I/DEBUG(3412): code around lr:
04-02 13:24:50.741: I/DEBUG(3412): 806029ec e5901008 e0836005 e1560001 8a000006
04-02 13:24:50.741: I/DEBUG(3412): 806029fc e5903000 e1a0100c e0830005 eb00099c
04-02 13:24:50.741: I/DEBUG(3412): 80602a0c e1a00004 e28dd008 e8bd8070 e59f004c
04-02 13:24:50.741: I/DEBUG(3412): 80602a1c e1a02005 e59fc048 e58d1000 e79e0000
04-02 13:24:50.741: I/DEBUG(3412): 80602a2c e08e100c e28000a8 ebfffef8 e3e00000
04-02 13:24:50.741: I/DEBUG(3412): stack:
04-02 13:24:50.741: I/DEBUG(3412): 45a98990 0000000a
04-02 13:24:50.741: I/DEBUG(3412): 45a98994 00000080
04-02 13:24:50.741: I/DEBUG(3412): 45a98998 00494e80
04-02 13:24:50.741: I/DEBUG(3412): 45a9899c 80886cd9 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): 45a989a0 00494e80
04-02 13:24:50.741: I/DEBUG(3412): 45a989a4 00000008
04-02 13:24:50.741: I/DEBUG(3412): 45a989a8 46b2a078
04-02 13:24:50.741: I/DEBUG(3412): 45a989ac 80898f25 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.741: I/DEBUG(3412): 45a989b0 00368360
04-02 13:24:50.741: I/DEBUG(3412): 45a989b4 00000008
04-02 13:24:50.741: I/DEBUG(3412): 45a989b8 00000080
04-02 13:24:50.741: I/DEBUG(3412): 45a989bc 80899041 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:50.751: I/DEBUG(3412): 45a989c0 00000008
04-02 13:24:50.751: I/DEBUG(3412): 45a989c4 00000000
04-02 13:24:50.751: I/DEBUG(3412): 45a989c8 df002777
04-02 13:24:50.751: I/DEBUG(3412): 45a989cc e3a070ad
04-02 13:24:50.751: I/DEBUG(3412): #00 45a989d0 4b89de00
04-02 13:24:50.751: I/DEBUG(3412): 45a989d4 80602a0c /system/lib/libgsl.so
04-02 13:24:50.751: I/DEBUG(3412): #01 45a989d8 00368360
04-02 13:24:50.751: I/DEBUG(3412): 45a989dc 00000020
04-02 13:24:50.751: I/DEBUG(3412): 45a989e0 004aa8e0
04-02 13:24:50.751: I/DEBUG(3412): 45a989e4 00371648
04-02 13:24:50.751: I/DEBUG(3412): 45a989e8 004aa8fc
04-02 13:24:50.751: I/DEBUG(3412): 45a989ec 80889e27 /system/lib/egl/libGLESv2_adreno200.so
04-02 13:24:51.132: I/BootReceiver(1361): Copying /data/tombstones/tombstone_08 to DropBox (SYSTEM_TOMBSTONE)
04-02 13:24:51.142: I/DEBUG(3412): debuggerd committing suicide to free the zombie!
04-02 13:24:51.182: I/DEBUG(3544): debuggerd: Nov 22 2011 21:11:52
04-02 13:24:51.222: D/dalvikvm(1361): GC_FOR_MALLOC freed 551K, 36% free 8894K/13703K, external 1258K/1770K, paused 78ms
04-02 13:24:51.222: V/DeviceStorageMonitorService(1361): freeMemory=1053483008
04-02 13:24:51.232: D/DeviceStorageMonitorService(1361): OoO SMS Memory available. SMS_AVAILABLE_THRESHOLD == 524288
04-02 13:24:51.232: I/DeviceStorageMonitorService(1361): Posting Message again
04-02 13:24:51.292: I/ActivityManager(1361): Process com.more2create.cityisland (pid 3526) has died.

当然,我用谷歌搜索了这个,并在互联网上搜索了可能的修复方法,但没有发现任何真正有用的东西。

人们正在谈论查看 SO 文件(在本例中为 libc.so)并找到应用程序崩溃的行。

现在,问题是我正在运行 Windows,并且不知道如何更深入地研究这个问题。我只是被困在这里...

所以,我的问题实际上很简单:有人可以在这里帮助我吗?有什么方法可以深入研究这个吗?我怎样才能知道 #00 pc 0000d200/system/lib/libc.so 是什么意思?

最佳答案

当 Zygote 抛出信号 11 时,这意味着某个进程试图访问禁止的内存区域。我建议使用 android_print 使用 DDMS 检查程序尝试访问但失败的区域。

如果您正在使用 OpenGL,请记住它在独立线程中工作,因此在构造函数上初始化 OpenGL 使用的所有变量以避免此类问题。尝试进行测试,然后使用您的游戏代码。

关于android - 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975675/

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