[发明专利]一种应用程序故障的定位方法有效
申请号: | 200410070762.5 | 申请日: | 2004-07-26 |
公开(公告)号: | CN1728106A | 公开(公告)日: | 2006-02-01 |
发明(设计)人: | 董伟杰;王新余 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 霍育栋;龙洪 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种应用程序故障的定位方法,包括以下步骤:应用程序编译时,为自编码函数做一个在入口处调用的钩子函数;程序启动后,建立该程序的进程共享内存区,并为每一个线程分配线程共享内存区;运行到所述自编码函数时调用钩子函数,将当前的执行指令地址标记(EIP)和当前运行函数返回地址标记(RET)压入相应线程共享内存区的堆栈区,并将程序堆栈中的RET修改为隐式调用函数的入口地址;函数返回时自动调用隐式调用函数,将压入的EIP和RET弹出,并恢复程序堆栈的RET;程序发生故障退出后,根据所述堆栈区的当前指针可获得应用程序正在运行的函数和嵌套层次,即使应用程序堆栈被破坏,也能实现对故障的准确定位。 | ||
搜索关键词: | 一种 应用程序 故障 定位 方法 | ||
【主权项】:
1、一种应用程序故障的定位方法,包括以下步骤:(a)在应用程序编译时,为每一个自编码函数生成一个在函数入口处调用的钩子函数,并提供一个在自编码函数返回时调用的隐式调用函数;(b)该应用程序启动后,建立该应用程序的进程共享内存区,在该进程共享内存区中为该应用程序的每一个线程分配一个线程共享内存区;(c)该应用程序运行到所述自编码函数时调用该钩子函数;(d)该钩子函数取得当前执行指令的地址标记和当前运行函数的返回地址标记,压入相应线程共享内存区的堆栈区,同时将该应用程序堆栈中当前运行函数的返回地址修改为该隐式调用函数的入口地址;(e)当前运行函数返回时自动调用该隐式调用函数,该隐式调用函数将压入的当前执行指令的地址标记和当前运行函数的返回地址标记弹出,并在该应用程序堆栈区中恢复当前运行函数的返回地址;(f)程序继续运行,在每一自编码函数调用均采用步骤(c)到步骤(d)的方法处理,如果程序正常退出,释放该应用程序的进程共享内存区,结束;如果发生故障退出,执行下一步;(g)保存该应用程序的进程共享内存的数据,根据所述堆栈区的当前指针获得应用程序正在运行的函数和嵌套层次,对故障进行准确定位。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200410070762.5/,转载请声明来源钻瓜专利网。
- 上一篇:高压容器的观察视窗
- 下一篇:一种治疗咳喘的中药制剂