[发明专利]崩溃调用栈聚合的方法、装置、介质和设备有效
申请号: | 201910967012.4 | 申请日: | 2019-10-12 |
公开(公告)号: | CN110865898B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | 刘洪凯 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 王思超 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 崩溃 调用 聚合 方法 装置 介质 设备 | ||
1.一种崩溃调用栈聚合方法,其特征在于,包括:
通过指定函数对崩溃事件实时监听,当崩溃事件发生时,直接反射获取崩溃调用栈存储元素;
基于所述崩溃调用栈存储元素,获取调用栈栈帧的方法签名,其中,所述方法签名包括所述调用栈栈帧对应的函数对象的函数名、所述函数对象所在类的类名以及所述函数对象的参数类型,所述方法签名为通过如下方式获得:将第一参数和第二参数从第一语言环境转换到第二语言环境,在第一语言环境中将所述第一参数和所述第二参数输入转换函数得到函数对象,以及在第一语言环境中提取所述函数对象的签名,获得所述调用栈栈帧的方法签名,所述第一参数和所述第二参数为基于元素数组确定,所述元素数组为所述调用栈存储元素经强转化后得到的;
将所述函数名、所述类名以及所述参数类型发送至服务器,用于对所述崩溃调用栈进行归类,所述对所述崩溃调用栈进行归类包括:根据所述函数名、所述类名以及所述参数类型构成的字符串计算所述崩溃调用栈的哈希值,以及将所述哈希值相同的所述崩溃调用栈聚合为一类。
2.如权利要求1所述的方法,其特征在于,所述基于所述崩溃调用栈存储元素,获取调用栈栈帧的方法签名,包括:
将所述调用栈存储元素强转化为元素数组;
取所述元素数组的第一个元素,并将所述第一个元素强转化为指定类型数组;
遍历所述调用栈栈帧,取所述指定类型数组的索引为i的元素作为第一参数,取所述元素数组的索引为i+1的元素作为第二参数,其中i为0到N-1的自然数,N为栈帧个数;
通过所述第一参数和第二参数获得所述调用栈栈帧的方法签名。
3.一种崩溃调用栈聚合方法,其特征在于,包括:
接收崩溃调用栈的方法签名,所述方法签名包括所述崩溃调用栈中栈帧对应的函数对象的函数名、所述函数对象所在类的类名以及所述函数对象的参数类型,所述方法签名为通过如下方式获得:将第一参数和第二参数从第一语言环境转换到第二语言环境,在第一语言环境中将所述第一参数和所述第二参数输入转换函数得到函数对象,以及在第一语言环境中提取所述函数对象的签名,获得所述调用栈栈帧的方法签名,所述第一参数和所述第二参数为基于元素数组确定,所述元素数组为所述调用栈存储元素经强转化后得到的;
将所述函数名、所述类名以及所述参数类型作为因子计算所述崩溃调用栈的哈希值,所述崩溃调用栈的哈希值为根据所述函数名、所述类名以及所述参数类型构成的字符串计算得到;
将所述哈希值相同的所述崩溃调用栈聚合为一类。
4.一种崩溃调用栈聚合装置,其特征在于,包括:
第一获取单元,用于通过指定函数对崩溃事件实时监听,当崩溃事件发生时,直接反射获取崩溃调用栈存储元素;
第二获取单元,基于所述崩溃调用栈存储元素,获取调用栈栈帧的方法签名,其中,所述方法签名包括所述调用栈栈帧对应的函数对象的函数名、所述函数对象所在类的类名以及所述函数对象的参数类型,所述方法签名为通过如下方式获得:将第一参数和第二参数从第一语言环境转换到第二语言环境,在第一语言环境中将所述第一参数和所述第二参数输入转换函数得到函数对象,以及在第一语言环境中提取所述函数对象的签名,获得所述调用栈栈帧的方法签名,所述第一参数和所述第二参数为基于元素数组确定,所述元素数组为所述调用栈存储元素经强转化后得到的;
发送单元,用于将所述函数名、所述类名以及所述参数类型发送至服务器,用于对所述崩溃调用栈进行归类,所述对所述崩溃调用栈进行归类包括:根据所述函数名、所述类名以及所述参数类型构成的字符串计算所述崩溃调用栈的哈希值,以及将所述哈希值相同的所述崩溃调用栈聚合为一类。
5.如权利要求4所述的装置,其特征在于,所述第二获取单元包括:
第一转化单元,用于将所述调用栈存储元素强转化为元素数组;
第二转化单元,用于取所述元素数组的第一个元素,并将所述第一个元素强转化为指定类型数组;
遍历单元,用于遍历所述调用栈栈帧,取所述指定类型数组的索引为i的元素作为第一参数,取所述元素数组的索引为i+1的元素作为第二参数,其中i为0到N-1的自然数,N为栈帧个数;
计算单元,用于通过所述第一参数和第二参数获得所述调用栈栈帧的方法签名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910967012.4/1.html,转载请声明来源钻瓜专利网。