[发明专利]基于VxWorks操作系统的函数调用栈分析方法及装置有效
申请号: | 201310506592.X | 申请日: | 2013-10-24 |
公开(公告)号: | CN103559123A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 曾颜 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/34 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 vxworks 操作系统 函数 调用 分析 方法 装置 | ||
1.一种基于VxWorks操作系统的函数调用栈分析方法,其特征在于,包括以下步骤:
S1、在主机上输入目标机当前运行的VxWorks映像的可执行链接格式ELF文件,同时在主机上生成映像文件的符号表文件;
S2、假定需要进行函数调用栈分析的任务为t1,主机向目标机下发请求命令:暂停任务t1,目标机执行该命令;
S3、主机向目标机请求任务t1的任务控制块TCB信息,目标机返回任务t1的TCB信息,包括通用寄存器信息、栈底以及栈大小;
S4、主机从返回的TCB信息中获取到栈指针SP值、程序计数器PC值、返回地址RA值,无内部互锁流水级的微处理器MIPS栈空间采用的是向下增长的方式,栈底在高地址,运行时SP值就是当前函数的栈指针,它指向的是栈顶的位置,每个栈帧中所存放的内容和存放顺序由目标体系架构的调用约定来定义;当前SP值是程序运行到当前状态的SP值,函数入口点的SP值则是进入该函数还未执行函数第一条指令时的SP值;
S5、主机依据SP值以及栈底信息向目标机请求栈空间的信息,所请求的栈信息为SP值所指向的栈顶至栈底之间的内存空间信息,目标机返回相应的栈信息;
S6、主机根据目标机的TCB信息,栈空间的信息以及反汇编文件,进行函数调用栈分析;
S7、主机向目标机下发请求命令:恢复需要进行函数调用栈分析的任务t1,目标机执行该命令。
2.如权利要求1所述的基于VxWorks操作系统的函数调用栈分析方法,其特征在于:步骤S6中的函数调用栈分析是一个递归的过程,进行顶层函数调用栈分析时,PC值和SP值分别为目标机返回的TCB信息中的PC值和SP值,后续递归过程中每一层的分析则依赖于上一层所生成的新的PC值和SP值,直至SP值到达栈底。
3.如权利要求2所述的基于VxWorks操作系统的函数调用栈分析方法,其特征在于:步骤S6中的函数调用栈分析过程如下:
步骤601、判断SP值是否到达栈底,如果是,则转到步骤602;如果否,则转到步骤603;
步骤602、串接每一层PC值所属的函数func形成函数调用链,结束;
步骤603、根据PC值查找所属的函数地址以及函数名称,具体查找过程为:在符号表文件中查找地址不超过并且最接近PC值函数地址以及函数名称,将该函数记为func;转到步骤604;
步骤604、利用现有工具获取函数func的汇编指令,转到步骤605;
步骤605、获取函数func入口点的SP值以及函数func的返回地址,并计算新的PC值和SP值,其中新的PC值为函数func的返回地址RA值经过计算后的值,函数func的返回地址即函数func的调用者地址,新的SP值为函数func入口点的SP值;返回步骤601。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310506592.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动卸料装置
- 下一篇:一种耐久性能好的冲压模具