[发明专利]获取函数调用关系的方法、装置、电子设备及存储介质在审
申请号: | 202111616464.1 | 申请日: | 2021-12-27 |
公开(公告)号: | CN116360781A | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 葛正中;李涛;林坤;韩森 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/71 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王庆龙 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 函数 调用 关系 方法 装置 电子设备 存储 介质 | ||
本申请实施例提供一种获取函数调用关系的方法、装置、电子设备及存储介质,所述方法包括:设置至少一个中断触发时刻;通过触发多核处理器中处理器核心的中断,获取所述处理器核心在所述中断触发时刻的函数调用关系。本申请实施例提供的获取函数调用关系的方法、装置、电子设备及存储介质,通过设置中断触发时刻,从而能够设置获取函数调用关系的时刻,通过触发中断来获取函数调用关系,实现了获取任意时刻各个处理器内核的函数调用关系。
技术领域
本申请涉及计算机技术领域,尤其涉及一种获取函数调用关系的方法、装置、电子设备及存储介质。
背景技术
随着第五代移动通信技术(5G)的发展和应用,基站,例如5G基站所采用的软件系统也具有越来越高的复杂度,当前基站往往采用多核处理器协作并发运行多个任务。在开发产品和试运行产品的阶段,经常会出现软件异常运行的场景或者出现软件在短暂地异常运行后自动恢复正常运行的场景。因此,存在一种需求,即希望获取在多核处理器中各个处理器内核执行任务的情况。具体地,在软件异常运行前后一段时间或者任意一段时间的多个时刻,各个处理器内核在执行什么任务、执行什么函数,在执行某个任务期间处理器内核在执行什么函数,执行的过程及结果是否符合预期,会不会产生性能瓶颈。
发明内容
本申请实施例提供一种获取函数调用关系的方法、装置、电子设备及存储介质,用以解决现有技术中无法直观得到各个处理器内核所执行的函数的缺陷,实现获取在任意时刻各个处理器内核的函数调用关系。
第一方面,本申请实施例提供一种获取函数调用关系的方法,包括:
设置至少一个中断触发时刻;
通过触发多核处理器中处理器核心的中断,获取所述处理器核心在所述中断触发时刻的函数调用关系。
可选地,根据本申请一个实施例的获取函数调用关系的方法,所述至少一个中断触发时刻包括第一时刻和第二时刻;
其中所述第一时刻、所述第二时刻以及所述第一时刻和所述第二时刻之间的间隔可配置。
可选地,根据本申请一个实施例的获取函数调用关系的方法,所述多核处理器包括第一处理器核心和第二处理器核心,所述通过触发多核处理器中处理器核心的中断,获取所述处理器核心在所述中断触发时刻的函数调用关系包括:
分别触发第一处理器核心的中断和第二处理器核心的中断;
分别获取所述第一处理器核心在所述中断触发时刻的函数调用关系和所述第二处理器核心在所述中断触发时刻的函数调用关系。
可选地,根据本申请一个实施例的获取函数调用关系的方法,所述触发多核处理器中处理器核心的中断包括以下至少一种:
触发多核处理器中处理器核心的不可屏蔽中断NMI;
触发多核处理器中处理器核心的时钟中断。
可选地,根据本申请一个实施例的获取函数调用关系的方法,所述获取所述处理器核心在所述中断触发时刻的函数调用关系包括:
判断触发中断前运行的代码的特权级别,在所述运行的代码是用户态的情况下,将用户态的栈内存拷贝到内核态后再解析栈空间函数调用。
可选地,根据本申请一个实施例的获取函数调用关系的方法,所述解析栈空间函数调用包括:
通过解析栈帧寄存器与栈顶寄存器来得到函数地址调用链;
或,在不使用栈帧寄存器记录函数调用的栈帧的情况下,通过解析可执行与可链接格式ELF文件中的描述如何展开堆栈的表的段来得到函数地址调用链。
可选地,根据本申请一个实施例的获取函数调用关系的方法,还包括:
建立任务信息数据库;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111616464.1/2.html,转载请声明来源钻瓜专利网。