[发明专利]嵌入式系统中进程异常跟踪定位的方法无效
申请号: | 200610167368.2 | 申请日: | 2006-12-29 |
公开(公告)号: | CN101211309A | 公开(公告)日: | 2008-07-02 |
发明(设计)人: | 蒋鲲鹏;缪敬;马力 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/46 |
代理公司: | 北京中博世达专利商标代理有限公司 | 代理人: | 王晶 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 进程 异常 跟踪 定位 方法 | ||
1.一种嵌入式系统中进程异常跟踪定位的方法,其特征在于包括如下步骤:
步骤A,当进程发生异常时,获取发生异常的用户进程的寄存器值和相关信息;
步骤B,根据所述寄存器值,使用堆栈回溯的方法找到用户进程发生异常时函数的地址,以及调用该函数的函数序列;
步骤C,使用动态链接函数符号查找方法,根据步骤B得到的函数地址,在相应文件的符号表查找出函数的符号;
步骤D,将步骤A、B、C得到的结果保存到异常信息文件中。
2.根据权利要求1所述的嵌入式系统中进程异常跟踪定位的方法,其特征在于步骤A具体为:
步骤A1,获取发生异常的用户进程的寄存器值,主要有:程序计数寄存器值,堆栈帧寄存器值,堆栈寄存器值,程序状态寄存器值;
步骤A2,获取发生异常进程的相关信息,主要有:进程的任务名字,进程标识编号、进程的堆栈空间范围、进程的代码空间范围、进程全局变量的空间范围,进程动态分配的地址空间范围。
3.根据权利要求1所述的嵌入式系统中进程异常跟踪定位的方法,其特征在于步骤B具体为:
步骤B1,根据步骤A1获取的堆栈帧寄存器值找到堆栈帧,从堆栈帧找到本函数的返回地址;
步骤B2,判断该返回地址是否是在本进程内存执行空间内的有效的可执行地址;
步骤B3,如果是,以该返回地址为起点,向有效程序空间的低端搜索,搜索调用本函数的调用指令及其地址。
4.根据权利要求1所述的嵌入式系统中进程异常跟踪定位的方法,其特征在于步骤C具体为:
步骤C1,根据调用指令中的偏移地址,加上调用指令本身的地址,得到在调用本函数时的跳转地址;
步骤C2,判断该跳转地址是直接跳转还是间接动态跳转;
步骤C3,如果是直接跳转,就直接在本执行文件中搜索函数的符号;
步骤C4,如果是间接动态跳转,则查找对应于该间接跳转地址的实际跳转地址;
步骤C5,查找对应该实际跳转地址的函数名字;
步骤C6、将搜索到函数名字、函数地址、文件名字一起保存;
步骤C7,根据保存的堆栈帧寄存器值找到堆栈帧,从堆栈帧得到上层函数的堆栈帧地址,更新保存的堆栈帧寄存器值;
步骤C8,使用保存的堆栈帧寄存器值,判断该堆栈帧寄存器值是否在进程的堆栈空间范围内,同时判断搜索深度是否超过了最大限制,如果堆栈帧寄存器值有效,搜索深度也没有越界,则跳转到步骤B继续运行,甭则,跳到步骤D。
5.根据权利要求4所述的嵌入式系统中进程异常跟踪定位的方法,其特征在于步骤C4具体为:
步骤C41,使用该间接动态跳转地址和操作系统提供的系统调用,找到该地址所属的可执行文件,以及该文件在操作系统进程中的虚拟地址区域,从虚拟地址区域得到该文件在进程内存空间中的映射偏移地址;
步骤C42,使用映射偏移地址和可执行文件,得到该文件在进程内存空间中进程链接表的入口地址;
步骤C43,利用入口地址判断输入地址是否在进程链接表中;如果不是,则输入地址为直接跳转的实际跳转地址,直接返回该地址,如果是,说明输入地址是间接跳转的;
步骤C44,利用输入地址和进程链接表表项的结构就可以得到由动态链接器放置在进程链接表表项中的实际跳转地址,返回该实际跳转地址。
6.根据权利要求4所述的嵌入式系统中进程异常跟踪定位的方法,其特征在于步骤C5具体为;
步骤C51,使用跳转指令和该指令的地址,得到该指令执行后的程序跳转地址;
步骤C52,判断该地址是否是有效的可执行地址,如果不是,退出处理,返回失败;
步骤C53,如果是,以该地址为起点,向有效程序空间的低端搜索,搜索调用本函数的跳转指令及实际跳转地址,即被调用函数的入口地址;
步骤C54,如果实际跳转地址是直接跳转的静态链接地址,则在当前可执行文件的符号表中搜索对应地址的函数名字,在符号表不存在的情况下,则直接返回地址和为零的函数名字,否则返回函数地址和在符号表中搜索到的函数名字;
步骤C55,如果实际跳转地址是间接跳转的动态链接地址,则找到实际跳转地址所在的可执行文件,然后在该可执行文件的动态符号表中查找与跳转地址对应的函数名字;
步骤C56,返回搜索到的函数地址,函数名字。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610167368.2/1.html,转载请声明来源钻瓜专利网。