Unity游戏崩溃日志查询笔记 安卓平台 关于tombstone_00
Unity游戏崩溃日志查询笔记 安卓平台 关于tombstone_00
最近Debug关于一个多线程下载资源,资源下载完成后,加载并设置资源时会导致游戏崩溃。
AndriodLogCat 最终显示详细信息写入了名为tombstone_00的文件下。
这个文件应该在手机的:“内部存储设备\Android\data\你的游戏或者软件包名\files\tombstone_00”
Version '2019.4.40f1c1 (bcafa7f80565)', Build type 'Development', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
Build fingerprint: 'Redmi/phoenix/phoenix:11/RKQ1.200826.002/V12.5.6.0.RGHCNXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2023-03-29 17:25:56+0800
pid: 27419, tid: 27560, name: UnityMain >>> com.dgames.***.android <<<
uid: 10473
signal 11 (SIGSEGV), code -6 (SI_TKILL), fault addr --------
x0 0000000000000000 x1 b400007808242200 x2 c0f562b6ff976c4e x3 0000000000000005
x4 085d7878b085d593 x5 683fda652693b9b0 x6 3134434642433130 x7 646e412f73656c64
x8 000000786adce924 x9 8538d26bb1c38639 x10 0000000025b752b8 x11 0000007800000000
x12 0000000025b75268 x13 dad7ab0b0c7b28a0 x14 86e1cdf65064294b x15 913ca71d90a129be
x16 000000786addefd8 x17 0000007a5015f454 x18 0000000000000035 x19 0000000000000000
x20 00000079bbd02000 x21 00000079bbd02000 x22 00000077f57fded0 x23 0000000000000000
x24 00000079bbfa4c40 x25 0000000000000001 x26 00000079d7675648 x27 0000000000000000
x28 00000079d76757d8 x29 00000079d7674fd0
sp 00000079d7674fd0 lr 000000786adce930 pc 0000007a5015f454
backtrace:
#00 pc 0000000000012454 /system/lib64/libandroid.so (AAsset_getLength) (BuildId: f652428396f14861e5803882f40005a4)
#01 pc 000000000000092c /data/app/~~wIlc5xWYHRkJFgI7NxLp1w==/com.dgames.g15002003.android-FCcpwUBbBdYDXcAhKxh3pw==/lib/arm64/libunity_android_asset.so (getLength+8) (BuildId: 54f3cd0462f1734e86b09d3b887f799d0068fcae)
#02 pc 00000000033e1ec4 /data/app/~~wIlc5xWYHRkJFgI7NxLp1w==/com.dgames.g15002003.android-FCcpwUBbBdYDXcAhKxh3pw==/lib/arm64/libil2cpp.so (BuildId: 0ae91d8319c6ffda762809f7116194a55d9f4185)
#03 pc 00000000033e2294 /data/app/~~wIlc5xWYHRkJFgI7NxLp1w==/com.dgames.g15002003.android-FCcpwUBbBdYDXcAhKxh3pw==/lib/arm64/libil2cpp.so (BuildId: 0ae91d8319c6ffda762809f7116194a55d9f4185)
#04 pc 00000000033e2428 /data/app/~~wIlc5xWYHRkJFgI7NxLp1w==/com.dgames.g15002003.android-FCcpwUBbBdYDXcAhKxh3pw==/lib/arm64/libil2cpp.so (BuildId: 0ae91d8319c6ffda762809f7116194a55d9f4185)
#05 pc 00000000033e2c7c /data/app/~~wIlc5xWYHRkJFgI7NxLp1w==/com.dgames.g15002003.android-FCcpwUBbBdYDXcAhKxh3pw==/lib/arm64/libil2cpp.so (BuildId: 0ae91d8319c6ffda762809f7116194a55d9f4185)
······
注意:signal 11 (SIGSEGV), code -6 (SI_TKILL), fault addr --------
这一条是来自安卓崩溃原因的类别
下表列举了几个常见的信号量:
信号量 | Value | 描述 |
---|---|---|
SIGHUP | 1 | 终端连接结束时发出(不管正常或非正常) |
SIGINT | 2 | 程序终止(例如Ctrl-C) |
SIGQUIT | 3 | 程序退出(Ctrl-) |
SIGILL | 4 | 执行了非法指令,或者试图执行数据段,堆栈溢出 |
SIGTRAP | 5 | 断点时产生,由debugger使用 |
SIGABRT | 6 | 调用abort函数生成的信号,表示程序异常 |
SIGIOT | 6 | 同上,更全,IO异常也会发出 |
SIGBUS | 7 | 非法地址,包括内存地址对齐出错,比如访问一个4字节的整数, 但其地址不是4的倍数 |
SIGFPE | 8 | 计算错误,比如除0、溢出 |
SIGKILL | 9 | 强制结束程序,具有最高优先级,本信号不能被阻塞、处理和忽略 |
SIGUSR1 | 10 | 未使用,保留 |
SIGSEGV | 11 | 非法内存操作,与SIGBUS不同,他是对合法地址的非法访问,比如访问没有读权限的内存,向没有写权限的地址写数据 |
SIGUSR2 | 12 | 未使用,保留 |
SIGPIPE | 13 | 管道破裂,通常在进程间通信产生 |
SIGALRM | 14 | 定时信号 |
SIGTERM | 15 | 结束程序,类似温和的SIGKILL,可被阻塞和处理。通常程序如果终止不了,才会尝试SIGKILL |
SIGSTKFLT | 16 | 协处理器堆栈错误 |
SIGCHLD | 17 | 子进程结束时, 父进程会收到这个信号。 |
SIGCONT | 18 | 让一个停止的进程继续执行 |
SIGSTOP | 19 | 停止进程,本信号不能被阻塞,处理或忽略 |
SIGTSTP | 20 | 停止进程,但该信号可以被处理和忽略 |
SIGTTIN | 21 | 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号 |
SIGTTOU | 22 | 类似于SIGTTIN, 但在写终端时收到 |
SIGURG | 23 | 有紧急数据或out-of-band数据到达socket时产生 |
SIGXCPU | 24 | 超过CPU时间资源限制时发出 |
SIGXFSZ | 25 | 当进程企图扩大文件以至于超过文件大小资源限制 |
SIGVTALRM | 26 | 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间 |
SIGPROF | 27 | 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的时间 |
SIGWINCH | 28 | 窗口大小改变时发出 |
SIGIO | 29 | 文件描述符准备就绪, 可以开始进行输入/输出操作 |
SIGPOLL SIGIO | 29 | 同上,别称 |
SIGPWR | 30 | 电源异常 |
SIGSYS | 31 | 非法的系统调用 |
根据表格信息崩溃是由于“非法内存操作(访问没有读权限的内存,向没有写权限的地址写数据)”,网上同款崩溃说是指针错误(NullPointerReference)等。
backtrace: 从下往上是堆栈调用信息,能够看出调用到
“#00 pc 0000000000012454 /system/lib64/libandroid.so (AAsset_getLength) (BuildId: f652428396f14861e5803882f40005a4)”,报错,再往上一条,是项目里面一条加载资源的方法,所以问题可以在该代码位置加上日志查看问题。