zoukankan      html  css  js  c++  java
  • Unity符号表

    我们可以通过crash日志信息,查看程序crash在什么地方。
    程序crash日志:

    在这份堆栈信息里,可以看到崩溃时的内存地址,例如0049b647这样的数字。每行的结尾则是所使用的库,例如:libunity.so
    在Unity 5.3.6之后的版本,Unity提供了libunity.so的符号表。

    在Mac上,符号表的路径是:

    /Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Symbols

    /Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/il2cpp/Release/Symbols

    在windows上,符号表的路径是:

    C:Program FilesUnityEditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseSymbolsarmeabi-v7alibunity.sym.so

    C:Program FilesUnityEditorDataPlaybackEnginesAndroidPlayerVariationsil2cppReleaseSymbolsarmeabi-v7alibunity.sym.so

    需要注意的是,接下来我们使用的符号表版本一定要和你打包所使用的Editor版本一致。
    有了符号表,接下来我们还需要NDK的addr2line工具。你可以在你的NDK目录下找到它:

    toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-addr2line

    OK,万事俱备,我们接下来就来解析一下第一条内存地址所对应的方法。

    ./arm-linux-androideabi-addr2line -f -C -e libunity.sym.so 0049b647

    可以看到crash的方法是:

  • 相关阅读:
    Shell变量之自定义变量、环境变量
    Shell变量命名规则
    获取文件编码格式
    基于Lucene的文件检索Demo
    数据库压力测试工具
    插入ts以及判断列是否存在(支持多数据库)
    (摘)Chart属性设置
    (摘)C#comboBox绑定数据
    (摘)ORACLE DBA的职责
    (摘)DataGuard物理standby管理
  • 原文地址:https://www.cnblogs.com/TravelingLight/p/10110318.html
Copyright © 2011-2022 走看看