CN106294071B - 一种软件崩溃信息收集方法及其系统 - Google Patents

一种软件崩溃信息收集方法及其系统 Download PDF

Info

Publication number
CN106294071B
CN106294071B CN201610655301.7A CN201610655301A CN106294071B CN 106294071 B CN106294071 B CN 106294071B CN 201610655301 A CN201610655301 A CN 201610655301A CN 106294071 B CN106294071 B CN 106294071B
Authority
CN
China
Prior art keywords
software
file
processing module
exe
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610655301.7A
Other languages
English (en)
Other versions
CN106294071A (zh
Inventor
赵乐添
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo Sunny Opotech Co Ltd
Original Assignee
Ningbo Sunny Opotech Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ningbo Sunny Opotech Co Ltd filed Critical Ningbo Sunny Opotech Co Ltd
Priority to CN201610655301.7A priority Critical patent/CN106294071B/zh
Publication of CN106294071A publication Critical patent/CN106294071A/zh
Application granted granted Critical
Publication of CN106294071B publication Critical patent/CN106294071B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机软件领域,特别涉及一种车间软件异常分析处理维护及统计的方法。一种软件崩溃信息收集方法,该方法包括处理模块,该方法包括以下的步骤:1)软件程序初始化过程中,加载动态链接库;2)调取动态链接库中初始化函数,传入参数;3)编译代码,产生exe、pdb和map;4)下发exe程序,配置参数,设置出现错误时执行内容;5)如果出现异常,去指定位置收集dump信息;6)使用dump文件与exe、pdb、map和源码文件调试,还原发生错误的位置。该方法为一种分可靠分析影响产能因素的手段,其产生的dump调试文件,提高了软件维护的效率,软件自动重启的功能,更是防范了其他生产异常的产生。

Description

一种软件崩溃信息收集方法及其系统
技术领域
本发明涉及计算机软件领域,特别涉及一种车间软件异常分析处理维护及统计的方法。
背景技术
软件下发后,在产线运行过程中会出现偶发性的致命错误导致,程序崩溃,自动退出,影响产能效率,此类异常出现的次数需要统计分析。
由于一些错误是偶发性,不容易复现,很难定位到该类异常的代码错误位置,给此类异常的修复带来一定的困难。
软件异常退出之后,产线作业人员需要重新找到该软件并打开,花费一定的时间的同时,存在用错软件的隐患。
发明内容
为了解决上述的技术问题,本发明的第一个目的是提供一种软件崩溃信息收集方法,该方法为一种分可靠分析影响产能因素的手段,其产生的dump调试文件,提高了软件维护的效率,软件自动重启的功能,更是防范了其他生产异常的产生。本发明的第二个目的是提供采用上述的方法的系统。
为了实现上述的第一个目的,本发明采用了以下的技术方案:
一种软件崩溃信息收集方法,该方法包括处理模块,该方法包括以下的步骤:
1)软件程序初始化过程中,加载动态链接库;
2)调取动态链接库中初始化函数,传入初始化参数,初始化参数为出现异常时要保存到数据库上的内容;
3)编译程序源代码,生成exe、pdb、map三个文件;
4)下发exe文件,随同exe文件,需要一个配置参数文件,参数文件的参数为一旦触发处理模块运行时要进行执行内容的配置参数;
5)软件运行时处理模块一直在等待软件无法处理的异常来触发处理模块运行;
6)当异常触发处理模块后,处理模块捕获异常对象,解析异常对象,将异常对象以一份简单的文本记录下来,并调用MiniDump模块,保存内存dump文件以供调试;
7)上传数据库,记录软件异常信息;
8)重启软件,处理模块获取当前软件进程的映像路径,生成批处理文件,延迟执行,等待当前进程完全退出后立刻重新打开软件。
作为优选,所述的步骤2)初始化参数包括用户信息和产品信息。
作为优选,所述的步骤2)初始化函数实施方式包括保存初始化参数至内存中、注册异常捕获函数以及初始化MiniDump模块。
作为优选,所述的步骤4)配置参数包括是否上传数据库、数据的地址口令以及dump文件的保存位置。
作为优选,所述的步骤6)文本记录下来的内容包括发生异常的模块、内存地址和时间。
作为优选,所述的步骤6)调试使用vs2005及以上版本进行调试。
作为优选,所述的步骤6)产生dump文件的exe,与当时编译该exe文件时产生的exe文件pdb、map以及源码文件一一对应。
为了实现上述的第二个目的,本发明采用了以下的技术方案:
一种软件崩溃信息收集系统,该系统包括处理模块,所述的处理模块采用上述任意一项技术方案所述的方法进行软件崩溃信息收集。
本发明由于采用了上述的技术方案,具有以下的特点:
1、本发明在每一次软件发生异常的时候,会向指定数据库进行记录本次异常,记录的信息可以在加载该模块并初始化时传入,这里的传入的参数称为初始化参数。初始化参数是在软件崩溃时,该模块要上传的一些数据,如当前生产的产品型号,通过分析上传后的数据,可以了解到软件异常对该型号产品的产能的影响等。
2、本发明还提供了软件bug追踪功能,发生异常时保存内存转储文件——dump文件,通过dump文件,可快速定位软件发生异常的位置,降低了定位错误代码位置的难度,提高软件维护效率。
3、本发明再异常发生后还会自动重新打开软件,该功能可以有效的节省重新寻找并打开软件的时间,同时避免了重新打开软件时用错软件的风险,为产线的产能有了更高的保障。
附图说明
图1为本发明的方法流程框图。
图2为本发明处理模块的流程框图。
具体实施方式
下面结合附图对本发明的具体实施方式做一个详细的说明。
1、本发明利用Windows异常处理机制,捕获软件无法处理的异常,使用基于Windows的“minidump”的崩溃转存技术,保存dump文件,使用Windows相应的调试API,IDE定位异常位置。
2、加载动态链接库,获取初始化函数,并通过传入初始化参数初始化即可,其中编译出来的pdb和map文件需要跟释放出来的exe文件对应保存起来。
3、如图1所示一种软件崩溃信息收集方法,具体操作流程如下:
1)软件程序初始化过程中,加载本发明动态链接库;
2)调取库中初始化函数,传入初始化参数,初始化参数包括用户信息,产品信息等,是出现异常时要保存到数据库上的内容;
3)初始化函数实施方式包括,保存初始化参数至内存中、注册异常捕获函数、以及初始化MiniDump模块;即图2模块运行流程中的初始化;
4)编译程序源代码,生成exe、pdb、map三个文件;
5)下发exe文件,随同exe文件,需要一个配置参数文件,该文件内的参数为一旦触发本发明模块运行时(即出现错误时)要进行执行内容的配置参数;包括是否上传数据库、数据的地址口令以及dump文件的保存位置等等;
6)软件运行时模块一直在等待软件无法处理的异常来触发该模块运行,即图2模块运行流程②;
7)当异常触发该模块后,模块捕获异常对象,解析异常对象,将异常对象以一份简单的文本记录下来,包括发生异常的模块、内存地址、时间等信息,并调用MiniDump模块,保存内存dump文件以供调试,即图2模块运行流程③,其中保存位置有配置参数指定;
8)上传数据库,记录软件异常信息,及异常发生时间、地点、作业员等信息,即图2模块运行流程 ④,此类信息由初始化参数获取,是否上传及上传的数据库地址等信息由配置参数指定;
9)重启软件,模块获取当前软件进程的映像路径,生成批处理文件,延迟执行,等待当前进程完全退出后立刻重新打开软件,即图2模块运行流程 ⑤。

Claims (8)

1.一种软件崩溃信息收集方法,该方法包括处理模块,其特征在于该方法包括以下的步骤:
1)软件程序初始化过程中,加载动态链接库;
2)调取动态链接库中初始化函数,传入初始化参数,初始化参数为出现异常时要保存到数据库上的内容;
3)编译程序源代码,生成exe、pdb、map三个文件;
4)下发exe文件,随同exe文件,需要一个配置参数文件,参数文件的参数为一旦触发处理模块运行时要进行执行内容的配置参数;
5)软件运行时处理模块一直在等待软件无法处理的异常来触发处理模块运行;
6)当异常触发处理模块后,处理模块捕获异常对象,解析异常对象,将异常对象以一份简单的文本记录下来,并调用MiniDump模块,保存内存dump文件以供调试;
7)上传数据库,记录软件异常信息;
8)重启软件,处理模块获取当前软件进程的映像路径,生成批处理文件,延迟执行,等待当前进程完全退出后立刻重新打开软件。
2.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤2)初始化参数包括用户信息和产品信息。
3.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤2)初始化函数实施方式包括保存初始化参数至内存中、注册异常捕获函数以及初始化MiniDump模块。
4.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤4)配置参数包括是否上传数据库、数据的地址口令以及dump文件的保存位置。
5.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤6)文本记录下来的内容包括发生异常的模块、内存地址和时间。
6.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤6)调试使用vs2005及以上版本进行调试。
7.根据权利要求1所述的一种软件崩溃信息收集方法,其特征在于步骤6)产生dump文件的exe,与步骤3中编译程序源代码时产生的exe、 pdb、map文件以及源码文件一一对应。
8.一种软件崩溃信息收集系统,该系统包括处理模块,所述的处理模块采用权利要求1~7任意一项权利要求所述的方法进行软件崩溃信息收集。
CN201610655301.7A 2016-08-11 2016-08-11 一种软件崩溃信息收集方法及其系统 Active CN106294071B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610655301.7A CN106294071B (zh) 2016-08-11 2016-08-11 一种软件崩溃信息收集方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610655301.7A CN106294071B (zh) 2016-08-11 2016-08-11 一种软件崩溃信息收集方法及其系统

Publications (2)

Publication Number Publication Date
CN106294071A CN106294071A (zh) 2017-01-04
CN106294071B true CN106294071B (zh) 2018-11-27

Family

ID=57669378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610655301.7A Active CN106294071B (zh) 2016-08-11 2016-08-11 一种软件崩溃信息收集方法及其系统

Country Status (1)

Country Link
CN (1) CN106294071B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940681B (zh) * 2017-03-11 2020-07-21 苏州浪潮智能科技有限公司 一种利用跟踪函数和解析工具调试存储软件的方法
CN107085550A (zh) * 2017-03-31 2017-08-22 武汉斗鱼网络科技有限公司 一种用于收集iOS系统中应用崩溃信息的方法及系统
CN107357731B (zh) * 2017-07-17 2020-09-29 福建星瑞格软件有限公司 进程产生core dump问题的监控、分析和处理方法
CN108345518A (zh) * 2018-03-12 2018-07-31 张立江 一种软件崩溃后的数据恢复系统及其恢复方法
CN110908819B (zh) * 2018-09-17 2023-07-04 千寻位置网络有限公司 定位代码运行崩溃的方法及装置、终端、存储器
CN109358975A (zh) * 2018-09-28 2019-02-19 珠海市君天电子科技有限公司 一种软件运行异常的分析方法、装置、电子设备及存储介质
CN109766267A (zh) * 2018-12-15 2019-05-17 中国平安人寿保险股份有限公司 Cpu高耗代码定位方法、装置、电子设备及存储介质
CN110287051A (zh) * 2019-06-21 2019-09-27 四川盛趣时代网络科技有限公司 基于windows异常处理机制的主动防护方法
CN111382076B (zh) * 2020-03-10 2023-04-25 抖音视界有限公司 应用程序的测试方法、装置、电子设备及计算机存储介质
CN112380110A (zh) * 2020-09-30 2021-02-19 深圳点猫科技有限公司 一种客户端崩溃通知方法、装置及设备
CN113485884B (zh) * 2021-06-08 2023-06-06 北京控制工程研究所 一种基于处理器特性的星载软件异常状态监测方法
CN114443340A (zh) * 2022-01-29 2022-05-06 亿咖通(湖北)技术有限公司 异常进程处理方法、装置和服务器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034575A (zh) * 2012-11-29 2013-04-10 北京奇虎科技有限公司 崩溃分析方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321988B2 (en) * 2004-06-30 2008-01-22 Microsoft Corporation Identifying a code library from the subset of base pointers that caused a failure generating instruction to be executed

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034575A (zh) * 2012-11-29 2013-04-10 北京奇虎科技有限公司 崩溃分析方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Using Crash Minidunmp";doxygen;《http://crashrpt.sourceforge.net/docs/html/using_minidump.html》;20150429;第1-6页 *
"异常处理与MiniDump详解(4) MiniDump";九天雁翎;《https://blog.csdn.net/vagrxie/article/details/4398721》;20090731;第1-7页 *

Also Published As

Publication number Publication date
CN106294071A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106294071B (zh) 一种软件崩溃信息收集方法及其系统
US10996947B2 (en) Diagnosing production applications
CN109783342B (zh) 脚本调试方法、设备及计算机存储介质
CN107077414B (zh) 用于生产调试的诊断工作流程
US8839203B2 (en) Code coverage-based taint perimeter detection
CN107111544B (zh) 生产诊断中的历史控制流可视化
US20190319863A1 (en) Anomaly detection and correction in wireless networks
JP5430570B2 (ja) システムコールカバレッジ基準による試験スイート削減のための方法
EP3660684A1 (en) Efficient and comprehensive source code fuzzing
EP1489512A2 (en) Debugging breakpoints on pluggable components
CN110347085B (zh) 自动化测试系统、方法、车辆以及计算机可读介质
CN107608852A (zh) 一种进程监控方法及装置
CN105740139B (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN105094939B (zh) 一种基于Makefile自动编译技术实现的软件源文件静态分析方法
CN104572428A (zh) 基于windows操作系统下的复杂控件测试方法
CN107045474B (zh) 一种Fuzz测试中的程序流跟踪方法及装置
Kim et al. From control model to program: Investigating robotic aerial vehicle accidents with {MAYDAY}
US20080010536A1 (en) Breakpoints with Separate Conditions
Yan et al. Efficient testing of GUI applications by event sequence reduction
US10185647B2 (en) Debugging remote vertex code on test machine
US8458669B2 (en) Automated test system
CN112230904A (zh) 基于接口文档的代码生成方法、装置、存储介质及服务器
EP2587380B1 (en) Runtime environment and method for non-invasive monitoring of software applications
CN104657264A (zh) 二进制码覆盖率的测试系统及其测试方法
CN114327648B (zh) 一种驱动调试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant