Ale*_*nov 1 c++ linker android shared-libraries android-ndk
我有来自Google Play服务的应用的崩溃报告,如下所示:
backtrace:
#00 pc 00000000001b46a0 library.so
#01 pc 0000000000604464 library.so
#02 pc 0000000000c8ed1c library.so
Run Code Online (Sandbox Code Playgroud)
我还有一个.map文件library.so,帮助我找到函数名称并将堆栈跟踪转换为更易读的格式:
backtrace:
#00 pc 00000000001b46a0 library.so foo()
#01 pc 0000000000604464 library.so bar()
#02 pc 0000000000c8ed1c library.so zoo()
Run Code Online (Sandbox Code Playgroud)
但是手动解析函数名是容易出错的,它不会给我行号是导致崩溃的源代码.
我考虑过library.so在发布新版本时存储未剥离版本的想法,以便我可以使用ndk-stack工具,但剥离和未剥离二进制文件的AFAIK函数地址是不同的.
所以我的问题是可以继续发布剥离的二进制文件,并有办法自动用行号来表示堆栈跟踪吗?
任何建议将不胜感激
ndk-stack正是为此目的而建,不用担心.您将未经剥离的库提供给它,并获得您可以实现的最佳堆栈跟踪!
确保您不要混合调试/发布版本,并为每个投入生产的二进制文件保留未剥离的版本(或确保您可以为相应的git标记可靠地重建这种未剥离的版本).
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |