[发明专利]解决程序运行期间停止响应的方法和装置有效
申请号: | 201510768838.X | 申请日: | 2015-11-12 |
公开(公告)号: | CN105260257B | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 张刚 | 申请(专利权)人: | 用友网络科技股份有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京中恒高博知识产权代理有限公司 11249 | 代理人: | 刘洪京 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解决 程序 运行 期间 停止 响应 方法 装置 | ||
本发明公开了一种解决程序运行期间停止响应的方法和装置,其中,解决程序运行期间停止响应的方法,包括以下步骤:出现程序停止响应后,确认是否存在长时间运行的请求操作以及该请求操作的具体客户端地址、状态和停止响应时间;对程序的服务进程,根据预设的间隔时间,多次打印调用栈,并分别记录操作的调用栈;对比多次调用栈的结果,找到程序一直正在执行的函数名称;对于找到的函数名称,通过命令找到函数的编译入口地址;对找到的函数编译入口地址,通过命令设置断点并输入日志,然后继续程序执行,看断点是否命中,从而确认问题代码。达到快速定位引发问题的具体代码的目的。
技术领域
本发明涉及数据处理领域,具体地,涉及一种解决程序运行期间停止响应的方法和装置。
背景技术
目前,基于.net平台技术的持续改进和发展,其开发技术和效率越来越高效。但受限于人为因素,如开发人员良莠不齐造成的代码质量、硬件维护人员的错误环境配置等,仍然导致企业管理软件在运行期间,出现产品突然停止响应,如软件卡死等,给软件使用人员带来非常糟糕的使用体验。
当软件在运行期间的停止响应时,当前的解决方法主要有如下两类:
1、通过日志分析找线索,然后再Review代码手段定位问题代码;
2、通过调试工具如visual studio工具调试。
以上两个常规方法都有很大的局限性和弊端,具体如下:
1、问题分析时间无法评估。很多情况下由于信息缺乏导致根本就不能定位到引起问题的具体代码。
2、软件环境运行在生产环境,调试时势必要影响生产环境软运行,导致用户在调试时间内不能正常使用系统,影响用户的使用体验。
发明内容
本发明的目的在于,针对上述问题,提出一种解决程序运行期间停止响应的方法和装置,以实现快速定位引发问题的具体代码的优点。
为实现上述目的,本发明采用的技术方案是:
一种解决程序运行期间停止响应的方法,包括以下步骤:
步骤101、出现程序停止响应后,确认是否存在长时间运行的请求操作以及该请求操作的具体客户端地址、状态和停止响应时间;
步骤102、对程序的服务进程,根据预设的间隔时间,多次打印调用栈,并分别记录操作的调用栈;
步骤103、对比上述步骤102多次调用栈的结果,找到程序一直正在执行的函数名称;
步骤104、对于上述步骤103找到的函数名称,通过命令找到函数的编译入口地址;
步骤105、对步骤104找到的函数编译入口地址,通过命令设置断点并输入日志,然后继续程序执行,看断点是否命中,从而确认问题代码。
优选的,步骤101具体为:通过IIS的工作进程的监控请求时间,确认是否存在长时间运行的请求操作以及请求操作的具体客户端地址、状态和停止响应时间。
优选的,步骤102具体为:使用windbg工具附加到服务进程,根据预设的间隔时间多次打印调用栈,并分别记录操作的调用栈。
优选的,所述预设的间隔时间为10秒。
优选的,步骤105通过命令设置断点并输入日志中的命令为BP命令。
同时本发明技术方案还公开一种解决程序运行期间停止响应的装置,包括,程序监测模块、程序调试模块、程序对比模块、地址寻找模块和程序运行模块;
所述程序监测模块:出现程序停止响应后,确认是否存在长时间运行的请求操作以及该请求操作的具体客户端地址、状态和停止响应时间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510768838.X/2.html,转载请声明来源钻瓜专利网。