[发明专利]一种信息获取方法、装置、介质和设备在审

专利信息
申请号: 202010565709.1 申请日: 2020-06-19
公开(公告)号: CN111813465A 公开(公告)日: 2020-10-23
发明(设计)人: 刘洪凯 申请(专利权)人: 北京字节跳动网络技术有限公司
主分类号: G06F9/448 分类号: G06F9/448
代理公司: 北京睿驰通程知识产权代理事务所(普通合伙) 11604 代理人: 唐华;张文平
地址: 100041 北京市石景山区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 信息 获取 方法 装置 介质 设备
【说明书】:

本公开提供了一种信息获取的方法、装置、介质和设备,该方法包括:调用第一堆栈函数并获取所述第一堆栈函数返回的第一栈存储对象;基于所述第一栈存储对象从栈帧信息缓存区中获取所述第一栈存储对象中主线程调用栈的各栈帧标识对应的栈帧信息;其中,所述栈帧信息缓存区用于以健值对的形式存储历史运行过程中主线程调用栈对应的栈帧信息。本公开能够提升信息获取的速度,快速地获取主线程的调用栈信息,提升程序的执行效率。

技术领域

本公开涉及计算机技术领域,具体而言,涉及一种信息获取的方法、装置、介质和设备。

背景技术

安卓系统各应用程序在运行过程中,都需要不停的调用各线程的调用栈,通过获取调用栈栈帧的信息,来执行相应的任务,栈可以记录线程运行中的函数调用(或者叫做函数执行顺序),每个线程都有一个独自的调用栈。例如当系统卡顿时,子线程检测到了主线程发生卡顿,需要通过主线程的调用栈来分析具体是哪个方法导致了阻塞。

现有的获取安卓主线程调用栈的方法通常是调用Thread类的currentThread方法获取当前线程对象,然后调用其getStacktrace方法得到其调用栈。这种调用方法耗时长,尤其是当调用栈比较深时,很难及时获取调用栈的信息,使程序的运行、故障的检测等降低了效率。

公开内容

本公开的目的在于提供一种信息获取的方法、装置、介质和设备,能够解决上述提到的至少一个技术问题。具体方案如下:

根据本公开的具体实施方式,第一方面,本公开提供一种信息获取方法,包括:

调用第一堆栈函数并获取所述第一堆栈函数返回的第一栈存储对象;

基于所述第一栈存储对象从栈帧信息缓存区中获取所述第一栈存储对象中主线程调用栈的各栈帧标识对应的栈帧信息;其中,所述栈帧信息缓存区用于以健值对的形式存储历史运行过程中主线程调用栈对应的栈帧信息。

可选的,所述基于所述第一栈存储对象从栈帧信息缓存区中获取所述第一栈存储对象中主线程调用栈的各栈帧标识对应的栈帧信息,包括:

对所述第一栈存储对象进行数据处理,获得索引为i的所述第一栈存储对象的对象指针、指令偏移值以及类名,其中0≤i≤N-1,N为栈帧个数;

将所述索引为i的对象指针、指令偏移值以及类名组成的字符串作为字符串参数,在栈帧信息缓存区中遍历预创建的调用栈对象,将查询到的索引为i的栈帧标识对应的栈帧信息,记为第一栈帧信息。

可选的,所述对所述第一栈存储对象进行数据处理,获得索引为i的所述第一栈存储对象的对象指针、指令偏移值以及类名,包括:

将所述第一栈存储对象强转化为第一对象数组;

获取所述第一对象数组的第一个元素,并将所述第一个元素强转化为第一整型数组;

获取所述第一整型数组的前半段作为对象指针,获取所述第一整型数组的后半段作为指令偏移值;

获取所述第一对象数组的所述第一个元素之后的剩余部分为类名。

可选的,所述将查询到的索引为i的栈帧标识对应的栈帧信息,记为第一栈帧信息之后,还包括:

基于所述调用栈对象,获取未查询到的栈帧,将所述未查询到的栈帧标记为第二栈帧信息,其中,所述第二栈帧信息与所述第一栈帧信息构成所述主线程调用栈对应的栈帧信息。

可选的,所述获取未查询到的栈帧,将所述未查询到的栈帧标记为第二栈帧信息,包括:

创建异常类对象,所述异常类对象包括未查询到的栈帧信息;

通过第二堆栈函数调用所述异常类对象,获取未查询到的栈帧,将所述未查询到的栈帧标记为第二栈帧信息。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010565709.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top