一种软件错误信息的捕获或重现方法技术

技术编号:19821467 阅读:30 留言:0更新日期:2018-12-19 14:35
本发明专利技术公开了一种软件错误信息的捕获或重现方法,包括:系统初始化;后台监测程序判断主程序是否正常运行,如果监测程序连续未收到主程序发来的信息的时间大于可判断主程序故障就进入以下重启系统相关的程序;如果主程序是在调试模式下运行;截取并保存此时调试环境的debug窗口图像;截取并保存代码报错位置的窗口图像;截取并保存主程序开发环境所提供的其他出错信息窗口图像;监测程序最后重启操作系统,重启后使主程序在执行程序下运行。如果判断主程序在非调试模式下运行,截取并保存此时主程序窗口图像,监测程序重启操作系统。本发明专利技术在程序运行周期中获取和记录错误信息,方便维护修改。

【技术实现步骤摘要】
一种软件错误信息的捕获或重现方法
本专利技术属于软件计算机软件工程领域,更确切地说是一种软件错误信息的捕获或重现方法。
技术介绍
现有技术中,涉及软件系统的调试都是基于编辑器来进行调试测试的。但在实际生产中,长期不间断运行的大型软件在运行阶段同样会产生一部分的在设计测试阶段不可预估的,非周期性的错误,这对于软件的稳定高效运行提出了很大的挑战。尤其体现在涉及生产安全的行业中,例如铁路运输业。在这些行业中,软件以前的方式主要为当软件产生错误时将错误信息简单记录成文本文件,这对于后期的调试纠错很不方便,同时因为有些错误信息很难重现,从而对于软件的修改也是相当不易的。利用本专利技术提供的方式可以捕获更多的错误信息,例如出错断点和相应软件开发环境所提供的其他出错信息。使得软件的维护调试更加方便、快捷,节省了时间,提高了效率。同时因其于软件系统的较低关联度,可进一步扩展到更多的软件上。
技术实现思路
本专利技术的目的是提供一种软件错误信息的捕获或重现方法,其尤其针对长期不间断运行的大型软件,如铁路计算机联锁软件,为其增加的一种有效可靠的调试系统的手段及方法。本专利技术采用以下技术方案:一种软件错误信息的捕获或重现方法,包括以下步骤:系统初始化;监测程序监测主程是否正常运行;判断主程序是否在调试模式下;若在调试模式下,截取并保存此时调试环境的debug窗口图像;若不调试模式下,则截取并保存此时主程序窗口图像;主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像步骤具体为:获取当前调试窗口,通过向此发送模拟按键,将程序切换到调试模式,获得发生错误的断点位置,将包含断点的信息屏幕截取保存。发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像步骤具体为:通过模拟键盘按键,从而得到主系统开发环境所提供的更为详尽的错误信息,并将这些信息都截图保存到指定文件夹,通过伪造键盘消息的方式直接向应用程序发送消息就可以达到模拟按键的功能。在软件运行过程中产生的错误信息,通过句柄找到相应的窗口,通过模拟按键,获取到相应的窗体错误、调试信息,截取并以图片的形式保存到指定的文件夹中,从而实现对于错误信息的实时捕获,通过这些信息重现当时的现场。所述的模拟按键包括模拟鼠标和\或键盘。监测程序监测主程是否正常运行的具体步骤为:通过定时检测主程序是否定时的向自身发信息来判断主程序是否正常运行,如果监测程序连续未收到主程序发来的信息的时间大于设定值可判断主程序故障就进入以下重启系统相关的程序。每个错误信息都是错误处理程序在一个软件运行过程中,未被检测出来的或未知的bug。句柄在操作系统中是用来标志应用程序中建立或使用的唯一整数,用来唯一标识对象,包括应用程序的不同实例。模拟按键可通过伪造键盘消息的方式直接向应用程序发送消息达到模拟按键的功能。本专利技术的有益效果为:本专利技术主要是通过监测程序,监测主程序运行情况,当发生错误时获得窗体句柄,在后台模拟鼠标和键盘按键,从而获取在主程序发生错误时保存其当时的相关错误信息。公知的软件调试方式相对固定,基本是期望于程序调试过程中发现全部问题,对程序运行过程中产生的不可预期的错误信息考虑不够完善,记录方式也相对单一,不够方便灵活。本专利技术只需在软件后台运行,基于其子系统的监测程序,在程序运行周期中获取和记录错误信息,方便日后的维护修改,提高了程序的稳定性和健壮性。附图说明下面结合实施例和附图对本专利技术进行详细说明,其中:图1是本专利技术的流程示意图。图2、图3、图4是本专利技术实施例中窗口的截图。具体实施方式下面进一步阐述本专利技术的具体实施方式:如图1所示,本专利技术公开了一种软件错误信息的捕获或重现方法,包括以下步骤:一种软件错误信息的捕获或重现方法,包括以下步骤:S100,系统初始化;S200,监测程序监测主程是否正常运行;S300,判断主程序是否在调试模式下;S400,若在调试模式下,截取并保存此时调试环境的debug窗口图像;S700若不调试模式下,则截取并保存此时主程序窗口图像;S500,主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像;S600,发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像;S800,重启操作系统。主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像步骤具体为:获取当前调试窗口,通过向此发送模拟按键,将程序切换到调试模式,获得发生错误的断点位置,将包含断点的信息屏幕截取保存。发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像步骤具体为:通过模拟键盘按键,从而得到主系统开发环境所提供的更为详尽的错误信息,并将这些信息都截图保存到指定文件夹,通过伪造键盘消息的方式直接向应用程序发送消息就可以达到模拟按键的功能。在软件运行过程中产生的错误信息,通过句柄找到相应的窗口,通过模拟鼠标或键盘的按键,获取到相应的窗体错误、调试信息,截取并以图片的形式保存到指定的文件夹中,从而实现对于错误信息的实时捕获,通过这些信息重现当时的现场。监测程序检测主程序运行状态,判断主程序是否产生错误,若未产生错误,则重复该步骤。模拟按键可以为模拟鼠标或键盘中的任意一种,或两种方式组合使用。监测程序监测主程是否正常运行的具体步骤为:通过定时检测主程序是否定时的向自身发信息来判断主程序是否正常运行,如果监测程序连续未收到主程序发来的信息的时间大于设定值可判断主程序故障就进入以下重启系统相关的程序。每个错误信息都是错误处理程序在一个软件运行过程中,未被检测出来的或未知的bug。句柄在操作系统中是用来标志应用程序中建立或使用的唯一整数,用来唯一标识对象,包括应用程序的不同实例。模拟按键可通过伪造键盘消息的方式直接向应用程序发送消息达到模拟按键的功能。实施例1某车站运行联锁软件运行几个月后系统在操作过程中发生计算机重启,图2是监测程序在重启系统前拷贝的屏幕。使用原程序在调试模式下运行联锁程序,联锁程序有自动调用监测程序,该原程序发生重启,这次多获得两个屏幕截图如图3,图4所示,这都是监测程序截的图,分别显示为何程序发生了图2的错误,及程序的调用层次。软件原理:当在调试模式下的联锁软件发生了如图2的下标越界的错误时,编译工具便会停止运行联锁软件,这时监测程序和联锁软件的通讯也会停止,监测程序判断联锁软件故障,也能判断联锁软件在调试模式下运行,调用截屏语句截当前的屏幕图如图2,即调试环境的debug窗口图像,获取编译工具的调试窗口的句柄,向其发送模拟键盘CTRIL+D到调试模式,并截当前的屏幕如图3,即代码报错位置的窗口图像,获取编译工具主窗体的句柄,向其发送模拟键盘CTRIL+L,让其弹出调用堆栈窗口并截当前的屏幕如图4,即其他出错信息的窗口图像,监测程序重启windows系统,本专利技术中的监测程序为WatchDog,也可为其他的监测程序。本专利技术的方法为通过在主系统的运行周期内,通过监测程序监测主系统是否发生错误,如果发生错误并且在调试模式下,则通过模拟按键的方式将错误信息以图片的形式进行保存对的软件,实现对于系统错误本文档来自技高网...

【技术保护点】
1.一种软件错误信息的捕获或重现方法,其特征在于,包括以下步骤:系统初始化;监测程序监测主程是否正常运行;判断主程序是否在调试模式下;若在调试模式下,截取并保存此时调试环境的debug窗口图像;若不调试模式下,则截取并保存此时主程序窗口图像;主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像;发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像;重启操作系统。

【技术特征摘要】
1.一种软件错误信息的捕获或重现方法,其特征在于,包括以下步骤:系统初始化;监测程序监测主程是否正常运行;判断主程序是否在调试模式下;若在调试模式下,截取并保存此时调试环境的debug窗口图像;若不调试模式下,则截取并保存此时主程序窗口图像;主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像;发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像;重启操作系统。2.根据权利要求1所述的软件错误信息的捕获或重现方法,其特征在于,主程序调试环境下发送模拟按键,进入主程序调试窗口,截取并保存代码报错位置的窗口图像步骤具体为:获取当前调试窗口,通过向此发送模拟按键,将程序切换到调试模式,获得发生错误的断点位置,将包含断点的信息屏幕截取保存。3.根据权利要求2所述的软件错误信息的捕获或重现方法,其特征在于,发送调试环境能进入其他出错信息窗口的模拟按键,截取并保存主程序开发环境所提供的其他出错信息的窗口图像步骤具体为:通过模拟键盘按键,从而得到主系统开发环境所提供的更为详尽的错误信息,并将这些信息都截图保存到指定文件夹,通过伪造键盘消息的方式直接向应用程序发送消息就可以达到模拟按键的功能。4.根据权利要求3所述的软件错误信息的捕获或重现方法,其特征在于,在软件运行过程中产生的错误信息,通...

【专利技术属性】
技术研发人员:徐志豪张洪喜古博王鼎一
申请(专利权)人:上海亨钧科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1