[发明专利]一种基于申威BIOS的栈回溯方法、装置及存储介质在审
| 申请号: | 202211463133.3 | 申请日: | 2022-11-22 | 
| 公开(公告)号: | CN115756647A | 公开(公告)日: | 2023-03-07 | 
| 发明(设计)人: | 苏卫强;赵翊含;陈伟杰;石良军 | 申请(专利权)人: | 无锡先进技术研究院 | 
| 主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/448 | 
| 代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 陈萍萍 | 
| 地址: | 214122 江苏省无锡市滨*** | 国省代码: | 江苏;32 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 基于 bios 回溯 方法 装置 存储 介质 | ||
本发明公开了一种基于申威BIOS的栈回溯方法、装置及存储介质,包括:获取当前系统内所有加载模块的加载信息;通过指令扫描的方式提取返回地址和帧指针;对各所述返回地址和帧指针进行正确性检测;将检测结果为正确的返回地址作为调用函数函数地址,并将帧指针作为调用函数栈指针继续回溯,直至得到调用路径上所有返回地址时回溯结束;根据各所述加载信息对调用路径上所有返回地址进行解析,得到调用路径上各返回地址所在加载模块的名称和模块内偏移;运用本地分析工具解析调用路径上各返回地址所在加载模块的名称和模块内偏移,获得完整的栈回溯信息。本发明完全基于UEFI框架提供的官方接口实现,具有低耦合度、高模块化和较好的可移植性等优点。
技术领域
本发明涉及嵌入式系统技术领域,特别涉及一种基于申威BIOS的栈回溯方法、装置及存储介质。
背景技术
申威BIOS(Basic Input Output System,即基本输入输出系统)是面对申威处理器平台、基于UEFI(Unified Extensible Firmware Interface,即统一可拓展接口)框架实现的系统固件,用于加电自检、联系操作系统与提供连接操作系统与硬件的接口;申威BIOS面对的申威处理器平台采用自主指令集,是我国具有完全知识产权的处理器系列,但是,目前尚未开发有适用于申威BIOS的栈回溯方法。
目前,应用于申威其他软件的栈回溯方法主要是基于栈框结构,通过解析当前函数的栈框,查找并回溯出调用当前函数的上一层函数,通过对函数层层回溯得到函数调用的层次关系;但这种方法需要使用额外的空间存放函数与返回地址的映射结构,适用于保存在磁盘、执行文件本身可携带较多数据的软件或内核。作为一种系统固件,申威BIOS需要被烧录于空间较小的Flash Memory(闪存),为了尽可能加载更多驱动,提供更多服务,在生成执行文件时UEFI框架删除了函数名与函数在模块内相对偏移的映射表,这导致申威BIOS若使用目前现有的栈回溯方法,获取到的返回地址无法找到对应的函数名称,调试效果大打折扣。并且,为保证系统固件的可拓展性和良好的集成特性,申威BIOS的UEFI框架以模块作为单元组成,每个需要的功能被分为众多的子功能,以模块的形式单独实现;由于模块彼此之间相互独立,且加载地址不固定,使用上述现有的栈回溯方法获取到的全局地址无法像其他申威软件一样在编译环境下直接找到对应函数,调试价值进一步降低。
此外,基于其他处理器的栈回溯方法主要是通过保留ar寄存器和DRAM信息,在发生异常时通过滑差间隔倒叙恢复现场并调用算法反向恢复栈调用关系,这种方法与申威处理器的函数调用设计相悖,无法使用这种方式进行申威BIOS的栈回溯。因此,亟需一种新的能够根据申威BIOS内UEFI框架的架构特点进行栈回溯的方法。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于申威BIOS的栈回溯方法、装置及存储介质,能够完全基于UEFI框架提供的官方接口实现,同时具备低耦合度、高模块化和较好的可移植性等技术效果。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供一种基于申威BIOS的栈回溯方法,所述方法包括:
获取当前系统内所有加载模块的加载信息,并记录栈指针和调用各加载模块的加载地址;
利用申威架构中栈帧结构回溯调用函数,通过指令扫描的方式提取返回地址和帧指针;
对所提取的各所述返回地址和帧指针进行正确性检测;
将检测结果为正确的返回地址作为调用函数的函数地址,并将帧指针作为调用函数栈指针继续回溯,直至得到调用路径上所有返回地址时回溯结束;
根据各所述加载信息对调用路径上所有返回地址进行解析,得到调用路径上各返回地址所在加载模块的名称和模块内偏移;
运用本地分析工具解析调用路径上各返回地址所在加载模块的名称和模块内偏移,获得完整的栈回溯信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡先进技术研究院,未经无锡先进技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211463133.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种即热式空气源热泵热水器
 - 下一篇:一种光伏发电系统
 





