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)”,报错,再往上一条,是项目里面一条加载资源的方法,所以问题可以在该代码位置加上日志查看问题。

猜你喜欢

转载自blog.csdn.net/weixin_43381316/article/details/129844153