CN113742119B 嵌入式系统的调用栈回溯方法、装置和计算机设备 (上海闻泰信息技术有限公司).docxVIP

  • 0
  • 0
  • 约1.62万字
  • 约 25页
  • 2026-01-23 发布于重庆
  • 举报

CN113742119B 嵌入式系统的调用栈回溯方法、装置和计算机设备 (上海闻泰信息技术有限公司).docx

(19)国家知识产权局

(12)发明专利

(10)授权公告号CN113742119B(45)授权公告日2025.07.15

(21)申请号202110845087.2

(22)申请日2021.07.26

(65)同一申请的已公布的文献号申请公布号CN113742119A

(43)申请公布日2021.12.03

(56)对比文件

CN101539883A,2009.09.23CN102646051A,2012.08.22审查员刘凤娇

(73)专利权人上海闻泰信息技术有限公司

地址200062上海市普陀区云岭东路89号

2111-L室

(72)发明人黎发明

(74)专利代理机构北京开阳星知识产权代理有限公司11710

专利代理师王艳斌

(51)Int.CI.

GO6F11/07(2006.01)

权利要求书2页说明书8页附图3页

(54)发明名称

嵌入式系统的调用栈回溯方法、装置和计算

机设备

(57)摘要

CN113742119B本申请涉及计算机领域,提供了一种嵌入式系统的调用栈回溯方法、装置和计算机设备。方法包括:基于指定编译命令和宕机异常处理程序对程序源代码文件进行编译链接,生成ELF格式的目标文件;其中,指定编译命令用于记录函数栈帧的起始地址;当系统发生异常时,保存寄存器信息和目标文件对应的函数栈帧,并执行宕机异常处理程序;寄存器信息包括:FP寄存器和LR寄存器;通过宕机异常处理程序基于FP寄存器和LR寄存器对函数栈帧进行分析,得到发生异常的目标函数的调用地址表;采用预设的地址解析工具,解析出调用地址表中的地址在目标文件中的调用栈回溯信息。采用本方法能够更加高效、准确地回溯完整的调用关

CN113742119B

获取程序源代码文件、指定编译命令和宕机异常处理程序

基于指定编译命令和宕机异常处理程序对程序源代码文|件进行编译链接,生成ELF格式的目标文件

当系统发生异常时,保存寄存器信息和目标文件对应的函数栈帧,并执行宕机异常处理程序

通过宕机异常处理程序基于FP寄存器和LR寄存器对函数栈帧进行分析,得到发生异常的目标函数的调用地址表

采用预设的地址解析工具,解析出调用地址表中的地址在目标文件中的调用栈回溯信息

S102

S104

S106

-S108

CN113742119B权利要求书1/2页

2

1.一种嵌入式系统的调用栈回溯方法,其特征在于,所述方法包括:

获取程序源代码文件、指定编译命令和宕机异常处理程序;其中,所述指定编译命令用于记录函数栈帧的起始地址;

基于所述指定编译命令和所述宕机异常处理程序对所述程序源代码文件进行编译链接,生成可执行可链接ELF格式的目标文件;

当系统发生异常时,保存寄存器信息和所述目标文件对应的函数栈帧,并执行所述宕机异常处理程序;其中,所述寄存器信息包括:用于记录当前函数的栈帧的起始地址的FP寄存器,和用于记录调用所述当前函数的上级函数的返回地址的LR寄存器;

通过所述宕机异常处理程序基于所述FP寄存器和所述LR寄存器对所述函数栈帧进行分析,得到发生异常的目标函数的调用地址表;

采用预设的地址解析工具,解析出所述调用地址表中的地址在所述目标文件中的调用栈回溯信息;

其中,所述通过所述宕机异常处理程序基于所述FP寄存器和所述LR寄存器对所述函数栈帧进行分析,得到发生异常的目标函数的调用地址表,包括:

将发生异常的目标函数作为当前函数,重复执行如下回溯推导算法,直至回溯得到所述目标函数的调用地址表:

从所述当前函数的栈帧对应的FP寄存器中获取所述当前函数的起始地址;

从所述当前函数的栈帧对应的LR寄存器中获取返回地址;

根据所述起始地址得到调用所述当前函数的上一级函数,并将所述上一级函数作为新的当前函数;

当所述新的当前函数的栈帧对应的LR寄存器为空值时,停止所述回溯推导算法,并基于停止所述回溯推导算法时得到的所有的起始地址和返回地址生成调用地址表。

2.根据权利要求1所述的方法,其特征在于,所述基于所述指定编译命令和所述宕机异常处理程序对所述程序源代码文件进行编译链接,生成ELF格式的目标文件,包括:

采用所述指定编译命令对所述程序源代码文件进行编译,得到编译结果文件;

将所述宕机异常处理程序注入所述编译结果文件中,生成ELF格式的目标文件。

3.根据权利

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档