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的方法是:

  • 相关阅读:
    mysql基础(三)
    mysql基础(二)
    Mysql基础(一)
    Less32-Less-33
    Less-27
    Less-26
    Less-25
    Less-23
    Less18-Less19
    Less13-Less-14
  • 原文地址:https://www.cnblogs.com/TravelingLight/p/10110318.html
Copyright © 2011-2022 走看看