[发明专利]一种变量信息提取方法及装置有效
申请号: | 201610429180.4 | 申请日: | 2016-06-16 |
公开(公告)号: | CN107515769B | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 陈小翔;刘强 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 深圳市力道知识产权代理事务所(普通合伙) 44507 | 代理人: | 张传义 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 变量 信息 提取 方法 装置 | ||
本发明提供一种变量信息提取方法及装置,其中,该方法包括:在进行栈回溯时,确定与调用当前函数的上一层函数匹配的待监控函数节点,其中,待监控函数节点中记录有与待监控函数的待监控变量信息对应的特征字符串信息;根据与上一层函数匹配的待监控函数节点中的特征字符串信息,在上一层函数的栈帧范围中提取待监控变量信息。这样,本发明实施例提供的变量信息提取方法及装置,能够解决现有的栈回溯中需要考虑编译优化以及架构不同带来的函数栈帧差异性,导致待监控变量信息提取困难的问题。
技术领域
本发明涉及网络通信技术领域,特别是指一种变量信息提取方法及装置。
背景技术
在栈回溯中,如需获取某个函数运行时的入参信息、局部变量或临时变量信息时,由于编译优化或处理器架构不同使得栈帧结构不尽相同,函数栈内局部变量等相对于函数栈底的位置,难以从函数栈内直接分析出来。例如,在嵌入式系统的进程运行异常时,由于进程的栈中保存有运行时信息和函数调用信息,往往通过栈回溯方法来层层回溯函数调用接口,进而来定位异常的触发原因;对于空指针访问等较简单的问题,一般通过定位到错误函数就能找问题所在,但对于数组溢出、内存泄漏等问题,一般在异常触发之前已经产生,即使跟踪到异常触发的语句时,也难以确定问题所在,此时由于不同处理器架构不同导致需要针对不同处理器架构进行处理,以提取入参信息、局部变量或临时变量信息分析,判断是否异常。
由上可知,现有的栈回溯中,对入参信息、局部变量或临时变量信息等待监控变量信息的提取时,需要考虑编译优化以及架构不同带来的函数栈帧差异性,导致待监控变量信息提取困难,从而造成栈回溯时栈帧分析复杂。
发明内容
本发明要解决的技术问题是提供一种变量信息提取方法及装置,以解决现有的栈回溯中需要考虑编译优化以及架构不同带来的函数栈帧差异性,导致待监控变量信息提取困难的问题。
第一方面,本发明实施例提供一种变量信息提取方法,该方法包括:
在进行栈回溯时,确定与调用当前函数的上一层函数匹配的待监控函数节点,其中,待监控函数节点中记录有与待监控函数的待监控变量信息对应的特征字符串信息;
根据与上一层函数匹配的待监控函数节点中的特征字符串信息,在上一层函数的栈帧范围中提取待监控变量信息。
其中,确定与调用当前函数的上一层函数匹配的待监控函数节点的步骤包括:
获取当前函数的返回地址;
将当前函数的返回地址与预先创建的待监控函数列表中的多个待监控函数节点进行匹配,确定与上一层函数匹配的待监控函数节点。
其中,待监控函数节点还包括:待监控函数的名称以及待监控函数的内存地址范围;
其中,将当前函数的返回地址与预先创建的待监控函数列表中的多个待监控函数节点进行匹配,确定与上一层函数匹配的待监控函数节点的步骤包括:
获取设置的待监控函数列表索引,根据索引获取待监控函数列表中的第一待监控函数节点;
判断返回地址是否处于第一待监控函数节点对应的待监控函数的内存地址范围内;
若是,确定第一待监控函数节点为与上一层函数匹配的待监控函数节点。
其中,根据与上一层函数匹配的待监控函数节点中的特征字符串信息,在上一层函数的栈帧范围中提取待监控变量信息之前,该方法还包括:
获取上一层函数的栈帧范围。
其中,获取上一层函数的栈帧范围的步骤包括:
获取当前函数的栈顶地址以及上一层函数的栈顶地址;
根据当前函数的栈顶地址以及上一层函数的栈顶地址,确定上一层函数的栈帧范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610429180.4/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置