so崩溃信息定位

保存为python文件并填写addr2lineFilePath、symbolFilePath、crashFilePath,然后运行

#!/usr/bin/env python
# coding=utf-8
import os
 
# 配置addr2line工具的位置

#Linux上的SDK,64位的so
addr2lineFilePath = 'ANDROID_HOME/ndk/21.4.7075529/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-addr2line'
#Linux上的SDK,32位的so
#addr2lineFilePath = 'ANDROID_HOME/ndk/21.4.7075529/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line'


#Windows上的SDK,64位的so
addr2lineFilePath = 'ANDROID_HOME\\ndk\\21.4.7075529\\toolchains\\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\\bin\\aarch64-linux-android-addr2line.exe'


# 配置符号表so,也就是没有裁剪过的so,体积比较大的so
symbolFilePath = '工程MODULE目录\\build\intermediates\cmake\\release\obj\\arm64-v8a\xxx.so'

# 崩溃的日志
crashFilePath = 'stacktrace.txt'
 
command_line_header = addr2lineFilePath + ' -e ' + symbolFilePath + ' '
 
print('addr2lineTools:%s' % addr2lineFilePath)
 
print('SoSymbolFile:%s' % symbolFilePath)
 
print('开始解析')
 
fullOutPrint = ''
with open(crashFilePath, 'r') as file:
    keyString = " pc "
    for line in file:
        if line.find('\n') < 0:
            line += '\n'
 
        print(line, end='')
 
        # 是否包含关键字:pc
        begin = line.find(keyString) + len(keyString)
        # 是否包含关键字,关键字之前是否有#
        if begin < 0 or line[:begin].find('#') < 0:
            continue
        end = line[begin:].find(' ') + begin
 
        ########################### 堆栈信息:
        # 补充空格
        spaceCount = begin-7
        if spaceCount < 0:
            spaceCount = 0
        info = (' ' * spaceCount)
 
        # 绿色的堆栈id
        info += ('\u001b[1;36m' + line[begin:end] + '⇨')
 
        # 解析调用栈
        command = command_line_header + line[begin:end]
        f = os.popen(command)
        read = f.read()
        f.close()
        read = read.strip('\n')
 
        info += ('\u001b[31m' + read + '\u001b[0m')
 
        if not info.endswith('\n'):
            info += '\n'
 
        print(info, end='')
        # fullOutPrint += outPrint
 
# print(fullOutPrint)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。