[发明专利]获取调用栈栈帧指令偏移的方法、装置、介质和设备有效
申请号: | 201910835073.5 | 申请日: | 2019-09-05 |
公开(公告)号: | CN110764941B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 刘洪凯 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 王思超 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 调用 栈栈帧 指令 偏移 方法 装置 介质 设备 | ||
1.一种获取调用栈栈帧指令偏移的方法,其特征在于,包括:
初始化SDK,构建信号处理函数,其中所述信号处理函数包括一个信号S以及两个变量NSID和SID,其中,变量NSID表示需要被暂停的目标线程ID,变量SID表示已经被暂停的目标线程ID,所述初始化SDK,还包括:获取存储本地服务的指针参数;获取指定文件目录下的构建函数,所述构建函数用于构建java线程调用栈底层表示对象;
获取程序运行过程中的调用栈存储对象;
将所述调用栈存储对象强转化为对象数组;
获取所述对象数组的第一个元素,并将所述第一个元素强转化为整型数组或长整型数组;
截取所述整型数组或长整型数组的后半段数据,获得所述调用栈栈帧指令偏移;
其中,所述获取程序运行过程中的调用栈存储对象,包括:
获取目标线程的ID;
根据所述目标线程的ID,暂停所述目标线程;
从所述暂停的目标线程中获取所述调用栈存储对象;
恢复所述目标线程的执行。
2.如权利要求1所述的方法,其特征在于,所述获取目标线程的ID,包括:
调用名称提取函数;
通过所述名称提取函数获取所述目标线程的名称;
遍历指定文件目录下的所有子目录,通过所述目标线程的名称查找所述目标线程的ID。
3.如权利要求2所述的方法,其特征在于,所述根据所述目标线程的ID,暂停所述目标线程,包括:
将所述变量NSID的值置为所述目标线程的ID,向所述目标线程发送信号S;
所述目标线程收到所述信号S后执行所述信号处理函数;
通过所述信号处理函数,检测所述变量NSID的值是否与所述目标线程的ID相等;
如果相等,则令变量SID的值为所述目标线程的ID;
所述目标线程暂停执行。
4.如权利要求3所述的方法,其特征在于,所述从所述暂停的目标线程中获取所述调用栈存储对象,包括:
将所述存储本地服务的指针参数输入所述构建函数,获取所述调用栈存储对象。
5.如权利要求4所述的方法,其特征在于,所述恢复所述目标线程的执行,包括:
将所述变量NSID的值置为0,使所述目标线程检测到所述变量NSID的值与所述目标线程的ID不相等;
将所述变量SID的值置为0,退出所述信号处理函数,恢复所述目标线程的执行。
6.一种获取调用栈栈帧指令偏移的装置,其特征在于,包括:
初始化单元,用于初始化SDK,构建信号处理函数,其中所述信号处理函数包括一个信号S以及两个变量NSID和SID,其中,变量NSID表示需要被暂停的目标线程ID,变量SID表示已经被暂停的目标线程ID,所述初始化SDK,还包括:获取存储本地服务的指针参数;获取指定文件目录下的构建函数,所述构建函数用于构建java线程调用栈底层表示对象;
第一获取单元,用于获取程序运行过程中的调用栈存储对象;
转化单元,用于将所述调用栈存储对象强转化为对象数组;
第二获取单元,用于获取所述对象数组的第一个元素,并将所述第一个元素强转化为整型数组或长整型数组;
截取单元,用于截取所述整型数组或长整型数组的后半段数据,获得所述调用栈栈帧指令偏移;
其中,所述获取程序运行过程中的调用栈存储对象,包括:
获取目标线程的ID;
根据所述目标线程的ID,暂停所述目标线程;
从所述暂停的目标线程中获取所述调用栈存储对象;
恢复所述目标线程的执行。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910835073.5/1.html,转载请声明来源钻瓜专利网。