[go: up one dir, main page]

WO2013073762A1 - Method and apparatus for providing and collecting data about abnormal termination of program - Google Patents

Method and apparatus for providing and collecting data about abnormal termination of program Download PDF

Info

Publication number
WO2013073762A1
WO2013073762A1 PCT/KR2012/006615 KR2012006615W WO2013073762A1 WO 2013073762 A1 WO2013073762 A1 WO 2013073762A1 KR 2012006615 W KR2012006615 W KR 2012006615W WO 2013073762 A1 WO2013073762 A1 WO 2013073762A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
identification data
check
program
code
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.)
Ceased
Application number
PCT/KR2012/006615
Other languages
French (fr)
Inventor
Sung Gook Jang
Kwang Hee Yoo
Joo Hyun Sung
Hye Jin Jin
Yoon Hyung Lee
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.)
Neowiz Games Corp
Original Assignee
Neowiz Games Corp
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 Neowiz Games Corp filed Critical Neowiz Games Corp
Publication of WO2013073762A1 publication Critical patent/WO2013073762A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Definitions

  • the present invention relates, in general, to a method and apparatus for providing and collecting data about the abnormal termination of a program and, more particularly, to a method and apparatus for collecting data when a program is abnormally terminated by using version management information and to a method and apparatus for analyzing the collected data.
  • program development companies debug unexpected errors by collecting dump files obtained by extracting all or part of the contents of a program so as to correct program errors, check data, and back up data.
  • this method is disadvantageous in that the source code, version and execution environment of programs have different characteristics depending on individual users or individual service providers, thus making it difficult to efficiently cope with program errors.
  • an object of the present invention is to provide a method and apparatus for providing and collecting data about the abnormal termination of a program, which can solve the conventional problem in which it was difficult to efficiently and rapidly debug errors because errors are debugged using only dump files when errors occur in a program.
  • a method for providing data about abnormal termination of a program including extracting cause data including version information of an abnormally terminated program; performing an error data generation operation by collecting at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and by generating identification data about a cause of the abnormal termination using the cause data; and transmitting the collected check data and the generated identification data to an outside.
  • an apparatus for providing data about abnormal termination of a program including a status check unit configured to extract cause data including version information of an abnormally terminated program; an error data generation unit configured to collect at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and to generate identification data about a cause of the abnormal termination using the cause data; and a data transmission unit configured to transmit the collected check data and the generated identification data to an outside.
  • a method for collecting data about abnormal termination of a program including receiving version information and identification data from an external device and determining whether the version information and the identification data are stored in a debug database (DB); and receiving at least one piece of check data specifying hardware or software of a device that is executing an abnormally terminated program, and updating at least one of the identification data and the check data in the debug DB.
  • DB debug database
  • an apparatus for collecting data about abnormal termination of a program including a debug database (DB) determination unit configured to receive version information and identification data from an external device and determine whether the version information and the identification data are stored in a debug database (DB); and a data update unit configured to receive at least one piece of check data specifying hardware or software of a device that is executing an abnormally terminated program, and update at least one of the received identification data and check data in the debug DB.
  • DB debug database
  • DB debug database
  • FIG. 1 is a flowchart showing a method for providing data about the abnormal termination of a program according to an embodiment of the present invention
  • FIG. 2 is a block diagram showing an apparatus for providing data about the abnormal termination of a program according to an embodiment of the present invention
  • FIG. 3 is a flowchart showing a method for collecting data about the abnormal termination of a program according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing an apparatus for collecting data about the abnormal termination of a program according to an embodiment of the present invention.
  • a state check unit 100 extracts cause data including the version information of an abnormally terminated program.
  • version information refers to a combination of numerals or characters that allows the version of the program to be externally identified, and may include a version code.
  • the version information can be revised when an update or the like of a program is performed by the developer or manager of the program.
  • the version information may be characterized in that it is a version code encoded such that only an authenticated user can access the version information.
  • a version code which is encoded such that it is encrypted with an authentication key included in the version code can be distributed and implemented such that a program developer or manager stores a pair of authentication keys corresponding to the distributed version code in a data collection apparatus. Therefore, when the data provision apparatus transmits data including the version code encoded such that only an authenticated user can access the data, the data collection apparatus can extract an authentication key by decoding the encoded version code and authenticate the extracted authentication key using the authentication key pair included in the data collection apparatus.
  • cause data denotes a file obtained by extracting all or part of the contents of a program, an application, or a client so as to correct the errors of the program, check data, and back up the data.
  • the cause data may be implemented as a minidump file.
  • minidump file denotes a file including system and memory data about the abnormal termination of a program such as a stack trace or heap information when a crash with a program or an application occurs.
  • a program or an application is forcibly terminated due to a crash or the like on the user s computer or the like
  • the user can transmit the generated minidump to a program developer.
  • the program developer can use the corresponding minidump file to debug the portions in which an error has occurred.
  • the present invention uses cause data including version information, so that the error can be analyzed using pieces of data having the same version information, of a large amount of data stored in the data collection apparatus, thus obtaining the advantage of identifying the detailed function address or the like of the corresponding error.
  • an error data generation step is called by the status check unit 100.
  • the program may be terminated in the state in which cause data about errors is not transmitted to an external device.
  • the error data generation step is called before abnormal termination occurs, thus obtaining the advantage of accurately reporting errors without investing separate resources.
  • the error data generation step is not performed unless it is called, and can be performed by calling an error processing step if the status check unit 100 determines that the current status corresponds to abnormal termination.
  • settings may be performed such that a cause data file is stored in memory for a predetermined period of time.
  • the predetermined period of time for which it is stored can be previously set by the user so that when the error data generation step is called after abnormal termination has occurred, the cause data stored in the memory is fetched and used at the error data generation step.
  • the cause data file is stored in the memory for a predetermined period of time, thus obtaining the advantage of preventing the case where the processes are terminated together with the cause data without the error data generation step being performed.
  • an error data generation unit 200 verifies the settings of check data related to the cause data, and collects check data depending on the verified settings of the check data.
  • check data may include not only hardware specifications of a device that was executing the abnormally terminated program, for example, the processor, main board, graphics card, memory and network of the computer on which the program was being executed, but also software information related to a video or audio codec, and other programs that must be used to execute programs or the like on the computer.
  • the settings of check data can be implemented such that they can be verified by an external device.
  • the term external device denotes a device that can be provided with the settings of check data, and includes components such as an external database (DB), an external server, and an external web.
  • DB external database
  • the external device receives settings about the check data from the user. Therefore, it is preferable that check data be set by the user to prevent rules or regulations on unreasonable data collection from being violated and to collect the check data which is required to analyze errors.
  • the error data generation unit 200 may request the external device to verify the settings of check data and may collect unique data about the computer which was targeted for abnormal termination depending on the settings of check data requested by the external device.
  • the error data generation unit 200 generates identification data.
  • the identification data denotes data having a unique value so that a program developer or manager can identify the cause of abnormal termination.
  • the error data generation unit 200 may generate identification data using a hash function that employs the analyzed cause data as a seed.
  • the step at which the error data generation unit 200 generates identification data will be described below.
  • An error exception code and an offset code are extracted from the cause data.
  • the error exception code allows the function of terminating a program to be performed when an error occurs during the execution of the program, and includes a code that allows a function or functionality in which an error occurred to be identified using exception.
  • the offset code denotes the address of a segment loaded into memory during the execution of then program, and may provide the function of determining a situation, in which the memory is referred to when an error occurs, using the corresponding offset code.
  • a combined code can be generated by combining the extracted error exception code with the offset code.
  • the error exception code is a combination of 10-digit characters or numbers
  • the offset code is a combination of 6-digit characters or numbers
  • a 16-digit character/number string can be generated as a combined code by combining the two codes with each other.
  • the combination of 16-digit characters/numbers, which has been generated as the combined code is used as a seed, and a hash function is applied to the seed, so that a hash code is generated. Therefore, the hash code has a unique code, and it can be determined whether a dump has been duplicated and whether the same error has occurred.
  • the generated hash code can be set as identification data.
  • a data transmission unit 300 transmits the check data and the identification data, generated by the error data generation unit 200, to the outside of the apparatus.
  • the step at which the data transmission unit 300 transmits the data to the outside according to an embodiment of the present invention will be described.
  • the data transmission unit 300 determines whether version information and identification data are stored in an external device at step S140.
  • the external device includes a DB, a server, etc., and is configured to send a determination request with regard to whether the version information and the identification data are stored in the external device and receive a determination response to the requested data from the external device.
  • the data transmission unit 300 receives from the external device the response indicating that identification data is not stored, the data transmission unit 300 transmits the identification data to the external device at step S150. Since the external device and the data provision apparatus have the same version information, the external device can store the version information and the identification data so that the version information matches the identification data by the data transmission unit 300 merely transmitting the identification data. That is, the response indicating that identification data is not present means that duplicate dump files are not present and a new error cause for which the same error has never occurred before has is found.
  • the data transmission unit 300 transmits check data associated with the identification data stored in the external device to the outside at step S160.
  • the data transmission unit 300 performs step S150, so that the external device stores the version information and the identification data, and also stores the check data of the computer which was targeted for abnormal termination, thus enabling the external device to be implemented such that pieces of check data corresponding to version information and identification data are classified and stored.
  • the method may further include the step of checking whether transmission to the external device has been normally performed, and the step of, if transmission has not been normally performed, performing retransmission to the external device.
  • the method further includes the step of, after the data has been transmitted based on the data provision method of the present invention, checking whether the transmission has been normally performed, and if transmission has not been normally performed, performing retransmission to the external device, thus guaranteeing that data collection is reliable.
  • the method may further include the step of, if data transmission to the external device has been normally performed, deleting the cause data and the check data, thus reducing the unnecessary use of the memory.
  • the data provision apparatus may include a status check unit 100, an error data generation unit 200, and a data transmission unit 300.
  • the status check unit 100 extracts cause data including the version information of abnormal termination, and calls the error data generation unit 200 before abnormal termination occurs.
  • the cause data including version information is extracted, so that an error is analyzed using data corresponding to the version information of the data stored in the data provision apparatus, thus obtaining the advantage of identifying the detailed function address or the like of the corresponding error.
  • the cause data includes a minidump file, which denotes a file obtained by extracting at least part of the contents of a program or an application so as to correct errors in the program, check data, and back up data.
  • the error data generation unit 200 collects check data associated with the cause data, and generates identification data by applying a hash function to the cause data.
  • the error data generation unit 200 may include a check data collection unit 210, a code data extraction unit 230, and an identification data generation unit 250.
  • the check data collection unit 210 verifies the settings of check data, and collects check data depending on the settings.
  • the check data is identical to that of the above description, and thus a detailed description thereof is omitted.
  • the check data may include all of hardware and software specifications of a computer or the like which was targeted for abnormal termination.
  • the check data collection unit 210 can be implemented such that the settings of check data is verified by an external device and check data is collected based on the verified settings.
  • the code data extraction unit 230 can extract data required to generate identification data from the cause data, and can extract an error exception code and an offset code according to an embodiment of the present invention.
  • the identification data generation unit 250 can generate a combined code by combining, mixing, or modifying the data that has been extracted by the code data extraction unit to generate identification data.
  • the identification data generation unit can generate a combined code by combining the extracted error exception code with the extracted offset code. Identification data having a unique value can be generated using the generated combined code.
  • a hash code is generated by applying a hash function to the combined code, so that the identification data can be generated from the generated hash code.
  • the data transmission unit 300 transmits the check data and the identification data, generated by the error data generation unit 200, to the external device.
  • the data transmission unit 300 may include an identification data transmission unit 310 and a check data transmission unit 330.
  • the identification data transmission unit 310 determines whether version information and identification data are stored in the external device, and transmits the identification data to the external device if the identification data is not stored in the external device. That is, the fact that identification data is not present means that duplicate dump files are not present and the same error has never occurred before, thus obtaining the advantage of updating the type of error.
  • the check data transmission unit 330 transmits check data associated with the identification data stored in the external device to the external device.
  • the external device stores the version information and the identification data. Accordingly, when only the check data is updated, the updated check data can be stored so that the updated check data matches both the version information and the identification data.
  • a data collection apparatus 400 receives a request to verify the settings of check data from an external device, and transmits the settings of check data to the external device that requested the verification of the settings of check data.
  • the check data includes hardware and software specifications of a computer or the like which was targeted for abnormal termination.
  • the step of receiving the check data may include the step of receiving a request to verify the settings of check data from an external device 500 and transmitting the settings of preset data items to be collected to the external device, and the step of receiving at least one piece of check data collected depending on the transmitted settings.
  • the debug DB is characterized in that it stores data including version information, and may receive version information and identification data from the external device.
  • the debug DB may include a binary data format file constituting debugging information, may be generated in the case where a source code or the like is compiled, and may be implemented as a Program Debug Database (PDB). Therefore, there is an advantage in that if a dump file and an error DB file are present when an error occurs, it is possible to identify even the detailed function address of the corresponding error using the debug DB.
  • PDB Program Debug Database
  • the data collection apparatus 400 determines whether pieces of identification data including the same version information as the received version information are stored in a debug DB 600. When the version codes are different, it can be determined that the received version code is erroneous. The data collection apparatus 400 determines whether the same data as the input identification data is present among the pieces of identification data that include the same version information and that are stored in the debug DB.
  • step S210 whether the corresponding identification data is stored is determined, and then data is updated.
  • the data update step is configured such that if version information and identification data are stored in the debug DB, check data is updated, and such that if identification data is not stored in the debug DB, the identification data and check data are updated.
  • an identification count for the identification data is incremented at step S220.
  • the identification count denotes a value counting the number of duplicate dump files or the number of times the same error occurred because identification data has a unique value. For example, when the same identification data as input identification data is previously stored in the debug DB, an identification count can be incremented by 1. Therefore, from the standpoint of a program developer or manager, there is an advantage in that the identification count is incremented for the same error, thus simultaneously processing duplicate errors, and in that the identification count is used for errors caused by a plurality of users, thus reducing the processing load of error data.
  • identification data is updated at step S230.
  • the case where the identification data is not stored means that there is no duplicate dump file or that the same error has never occurred before, so that identification data about the transmitted version information is updated. For example, if a list of pieces of identification data depending on pieces of version information is stored, the identification data is added to the stored list and can then be updated.
  • the step of updating check data is configured to update check data matching the version information and the identification data. Therefore, in accordance with an embodiment of the present invention, if version information and identification data are present in the debug DB, the identification count is incremented. When the same type of error has never occurred before and then identification data is not present in the debug DB, new identification data is added to the debug DB, so that check data can be classified and updated based on the version information received by the data collection apparatus and the identification data.
  • a data collection apparatus 400 may include a check data setting unit 410, a debug DB determination unit 430, and a debug DB update unit 450.
  • the check data setting unit 410 receives a request to verify the settings of check data, and transmits the requested settings of the check data.
  • the debug DB determination unit 430 receives version information and identification data, and determines whether the version information and the identification data are stored in the debug DB.
  • the debug DB update unit 450 receives check data and updates the check data in the debug DB, whereas if identification data is not stored in the debug DB, the debug DB update unit 450 receives identification data and check data and updates the identification data and the check data in the debug DB.
  • the debug DB update unit 450 receives check data and updates it in the debug DB, and increments an identification count for the identification data. If identification data is not stored in the debug DB, the debug DB update unit 450 may receive identification data and check data and update them in the debug DB.
  • the embodiments of the present invention can be implemented in the form of a computer program. Code and code segments constituting the computer program can be easily deduced by computer programmers skilled in the art. Further, the computer program is stored in computer-readable recording media and is read and executed by the computer, so that the embodiments are implemented.
  • the computer-readable recording media include magnetic recording media, optical recording media, and carrier wave media.
  • the present invention is advantageous in that services are provided to be capable not only of collecting cause data indicating the cause of errors, but also of managing errors based on versions using the version information of programs and a debug DB, and in that a program developer or manager can identify even the detailed function address of the corresponding error using the cause data about the cause of errors and the debug DB.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention relates a method and apparatus for providing and collecting data about abnormal termination of a program. In the method for providing data about abnormal termination of a program, cause data including version information of an abnormally terminated program is extracted. An error data generation operation is performed by collecting at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and by generating identification data about a cause of the abnormal termination using the cause data. The collected check data and the generated identification data are transmitted to an outside.

Description

METHOD AND APPARATUS FOR PROVIDING AND COLLECTING DATA ABOUT ABNORMAL TERMINATION OF PROGRAM
The present invention relates, in general, to a method and apparatus for providing and collecting data about the abnormal termination of a program and, more particularly, to a method and apparatus for collecting data when a program is abnormally terminated by using version management information and to a method and apparatus for analyzing the collected data.
When unexpected errors in a program or the like occur, a user first asks the company that developed the program to solve the problem of errors, and the program development company attempts to solve the problem by engaging in one-to-one communication with a personal user. However, from the standpoint of the program development company, attempting to solve the problem via one-to-one communication with each of a plurality of personal users is a waste of time and expense because of the process of duplicate work. Further, even personal users may make a complaint because the program development company copes with the programs too slowly.
Therefore, program development companies debug unexpected errors by collecting dump files obtained by extracting all or part of the contents of a program so as to correct program errors, check data, and back up data. However, this method is disadvantageous in that the source code, version and execution environment of programs have different characteristics depending on individual users or individual service providers, thus making it difficult to efficiently cope with program errors.
Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to provide a method and apparatus for providing and collecting data about the abnormal termination of a program, which can solve the conventional problem in which it was difficult to efficiently and rapidly debug errors because errors are debugged using only dump files when errors occur in a program.
In accordance with an aspect of the present invention to accomplish the above object, there is provided a method for providing data about abnormal termination of a program, including extracting cause data including version information of an abnormally terminated program; performing an error data generation operation by collecting at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and by generating identification data about a cause of the abnormal termination using the cause data; and transmitting the collected check data and the generated identification data to an outside.
In accordance with another aspect of the present invention to accomplish the above object, there is provided an apparatus for providing data about abnormal termination of a program, including a status check unit configured to extract cause data including version information of an abnormally terminated program; an error data generation unit configured to collect at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and to generate identification data about a cause of the abnormal termination using the cause data; and a data transmission unit configured to transmit the collected check data and the generated identification data to an outside.
In accordance with a further aspect of the present invention to accomplish the above object, there is provided a method for collecting data about abnormal termination of a program, including receiving version information and identification data from an external device and determining whether the version information and the identification data are stored in a debug database (DB); and receiving at least one piece of check data specifying hardware or software of a device that is executing an abnormally terminated program, and updating at least one of the identification data and the check data in the debug DB.
In accordance with yet another aspect of the present invention to accomplish the above object, there is provided an apparatus for collecting data about abnormal termination of a program, including a debug database (DB) determination unit configured to receive version information and identification data from an external device and determine whether the version information and the identification data are stored in a debug database (DB); and a data update unit configured to receive at least one piece of check data specifying hardware or software of a device that is executing an abnormally terminated program, and update at least one of the received identification data and check data in the debug DB.
The above and other objects, features and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a flowchart showing a method for providing data about the abnormal termination of a program according to an embodiment of the present invention;
FIG. 2 is a block diagram showing an apparatus for providing data about the abnormal termination of a program according to an embodiment of the present invention;
FIG. 3 is a flowchart showing a method for collecting data about the abnormal termination of a program according to an embodiment of the present invention; and
FIG. 4 is a block diagram showing an apparatus for collecting data about the abnormal termination of a program according to an embodiment of the present invention.
Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. In the following description, detailed descriptions of known configurations or functions that may unnecessarily make the gist of the present invention obscure will be omitted.
Hereinafter, a method for providing data about the abnormal termination of a program executed by a data provision apparatus according to an embodiment of the present invention will be described with reference to FIG. 1.
At step 100, a state check unit 100 extracts cause data including the version information of an abnormally terminated program. For example, version information refers to a combination of numerals or characters that allows the version of the program to be externally identified, and may include a version code. The version information can be revised when an update or the like of a program is performed by the developer or manager of the program.
According to an embodiment of the present invention, the version information may be characterized in that it is a version code encoded such that only an authenticated user can access the version information. A version code which is encoded such that it is encrypted with an authentication key included in the version code can be distributed and implemented such that a program developer or manager stores a pair of authentication keys corresponding to the distributed version code in a data collection apparatus. Therefore, when the data provision apparatus transmits data including the version code encoded such that only an authenticated user can access the data, the data collection apparatus can extract an authentication key by decoding the encoded version code and authenticate the extracted authentication key using the authentication key pair included in the data collection apparatus.
Here, cause data denotes a file obtained by extracting all or part of the contents of a program, an application, or a client so as to correct the errors of the program, check data, and back up the data. In an embodiment of the present invention, the cause data may be implemented as a minidump file. The term minidump file denotes a file including system and memory data about the abnormal termination of a program such as a stack trace or heap information when a crash with a program or an application occurs. Generally, in the case where a program or an application is forcibly terminated due to a crash or the like on the user s computer or the like, if a minidump is generated, the user can transmit the generated minidump to a program developer. The program developer can use the corresponding minidump file to debug the portions in which an error has occurred.
Generally, when a minidump file is used, only the address of a function or a functionality in which the error of the corresponding program has occurred can be known. However, the present invention uses cause data including version information, so that the error can be analyzed using pieces of data having the same version information, of a large amount of data stored in the data collection apparatus, thus obtaining the advantage of identifying the detailed function address or the like of the corresponding error.
At step S110, an error data generation step is called by the status check unit 100. When a program or the like is terminated due to abnormal termination, the program may be terminated in the state in which cause data about errors is not transmitted to an external device.
Therefore, according to an embodiment of the present invention, the error data generation step is called before abnormal termination occurs, thus obtaining the advantage of accurately reporting errors without investing separate resources. The error data generation step is not performed unless it is called, and can be performed by calling an error processing step if the status check unit 100 determines that the current status corresponds to abnormal termination.
In another embodiment of the present invention, when abnormal termination occurs, settings may be performed such that a cause data file is stored in memory for a predetermined period of time. The predetermined period of time for which it is stored can be previously set by the user so that when the error data generation step is called after abnormal termination has occurred, the cause data stored in the memory is fetched and used at the error data generation step. Generally, when a program is abnormally terminated, the case where all of the processes of a program, an application, or the like that was targeted for abnormal termination are terminated may occur. Accordingly, in accordance with an embodiment of the present invention, the cause data file is stored in the memory for a predetermined period of time, thus obtaining the advantage of preventing the case where the processes are terminated together with the cause data without the error data generation step being performed.
At step S120, an error data generation unit 200 verifies the settings of check data related to the cause data, and collects check data depending on the verified settings of the check data.
The term check data may include not only hardware specifications of a device that was executing the abnormally terminated program, for example, the processor, main board, graphics card, memory and network of the computer on which the program was being executed, but also software information related to a video or audio codec, and other programs that must be used to execute programs or the like on the computer.
According to an embodiment of the present invention, the settings of check data can be implemented such that they can be verified by an external device. The term external device denotes a device that can be provided with the settings of check data, and includes components such as an external database (DB), an external server, and an external web. The external device receives settings about the check data from the user. Therefore, it is preferable that check data be set by the user to prevent rules or regulations on unreasonable data collection from being violated and to collect the check data which is required to analyze errors.
According to an embodiment of the present invention, the error data generation unit 200 may request the external device to verify the settings of check data and may collect unique data about the computer which was targeted for abnormal termination depending on the settings of check data requested by the external device.
At step S130, the error data generation unit 200 generates identification data. The identification data denotes data having a unique value so that a program developer or manager can identify the cause of abnormal termination. The error data generation unit 200 may generate identification data using a hash function that employs the analyzed cause data as a seed.
The step at which the error data generation unit 200 generates identification data according to an embodiment of the present invention will be described below. An error exception code and an offset code are extracted from the cause data.
The error exception code allows the function of terminating a program to be performed when an error occurs during the execution of the program, and includes a code that allows a function or functionality in which an error occurred to be identified using exception.
The offset code denotes the address of a segment loaded into memory during the execution of then program, and may provide the function of determining a situation, in which the memory is referred to when an error occurs, using the corresponding offset code.
A combined code can be generated by combining the extracted error exception code with the offset code. For example, when the error exception code is a combination of 10-digit characters or numbers, and the offset code is a combination of 6-digit characters or numbers, a 16-digit character/number string can be generated as a combined code by combining the two codes with each other. The combination of 16-digit characters/numbers, which has been generated as the combined code, is used as a seed, and a hash function is applied to the seed, so that a hash code is generated. Therefore, the hash code has a unique code, and it can be determined whether a dump has been duplicated and whether the same error has occurred. The generated hash code can be set as identification data.
A data transmission unit 300 transmits the check data and the identification data, generated by the error data generation unit 200, to the outside of the apparatus. The step at which the data transmission unit 300 transmits the data to the outside according to an embodiment of the present invention will be described.
The data transmission unit 300 determines whether version information and identification data are stored in an external device at step S140. As described above, the external device includes a DB, a server, etc., and is configured to send a determination request with regard to whether the version information and the identification data are stored in the external device and receive a determination response to the requested data from the external device.
If the data transmission unit 300 receives from the external device the response indicating that identification data is not stored, the data transmission unit 300 transmits the identification data to the external device at step S150. Since the external device and the data provision apparatus have the same version information, the external device can store the version information and the identification data so that the version information matches the identification data by the data transmission unit 300 merely transmitting the identification data. That is, the response indicating that identification data is not present means that duplicate dump files are not present and a new error cause for which the same error has never occurred before has is found.
The data transmission unit 300 transmits check data associated with the identification data stored in the external device to the outside at step S160. The data transmission unit 300 performs step S150, so that the external device stores the version information and the identification data, and also stores the check data of the computer which was targeted for abnormal termination, thus enabling the external device to be implemented such that pieces of check data corresponding to version information and identification data are classified and stored.
According to an embodiment of the present invention, the method may further include the step of checking whether transmission to the external device has been normally performed, and the step of, if transmission has not been normally performed, performing retransmission to the external device. In the case where data is transmitted to an external device such as a web server, there is the probability of the data being missed if a large amount of data is transmitted to the web server. Therefore, the method further includes the step of, after the data has been transmitted based on the data provision method of the present invention, checking whether the transmission has been normally performed, and if transmission has not been normally performed, performing retransmission to the external device, thus guaranteeing that data collection is reliable. The method may further include the step of, if data transmission to the external device has been normally performed, deleting the cause data and the check data, thus reducing the unnecessary use of the memory.
According to the present invention, there is an advantage in that even if the revision of a program is taken into consideration, reliable data about the cause of errors can be provided using an error statistics function for individual versions.
An apparatus for providing data about the abnormal termination of a program according to another embodiment of the present invention will be described with reference to FIG. 2. The data provision apparatus according to the present invention may include a status check unit 100, an error data generation unit 200, and a data transmission unit 300.
The status check unit 100 extracts cause data including the version information of abnormal termination, and calls the error data generation unit 200 before abnormal termination occurs.
The cause data including version information is extracted, so that an error is analyzed using data corresponding to the version information of the data stored in the data provision apparatus, thus obtaining the advantage of identifying the detailed function address or the like of the corresponding error.
The cause data includes a minidump file, which denotes a file obtained by extracting at least part of the contents of a program or an application so as to correct errors in the program, check data, and back up data.
The error data generation unit 200 collects check data associated with the cause data, and generates identification data by applying a hash function to the cause data. The error data generation unit 200 may include a check data collection unit 210, a code data extraction unit 230, and an identification data generation unit 250.
The check data collection unit 210 verifies the settings of check data, and collects check data depending on the settings. The check data is identical to that of the above description, and thus a detailed description thereof is omitted. The check data may include all of hardware and software specifications of a computer or the like which was targeted for abnormal termination. In an embodiment of the present invention, the check data collection unit 210 can be implemented such that the settings of check data is verified by an external device and check data is collected based on the verified settings.
The code data extraction unit 230 can extract data required to generate identification data from the cause data, and can extract an error exception code and an offset code according to an embodiment of the present invention.
The identification data generation unit 250 can generate a combined code by combining, mixing, or modifying the data that has been extracted by the code data extraction unit to generate identification data. According to an embodiment of the present invention, the identification data generation unit can generate a combined code by combining the extracted error exception code with the extracted offset code. Identification data having a unique value can be generated using the generated combined code. In an embodiment of the present invention, a hash code is generated by applying a hash function to the combined code, so that the identification data can be generated from the generated hash code.
The data transmission unit 300 transmits the check data and the identification data, generated by the error data generation unit 200, to the external device. The data transmission unit 300 may include an identification data transmission unit 310 and a check data transmission unit 330.
The identification data transmission unit 310 determines whether version information and identification data are stored in the external device, and transmits the identification data to the external device if the identification data is not stored in the external device. That is, the fact that identification data is not present means that duplicate dump files are not present and the same error has never occurred before, thus obtaining the advantage of updating the type of error.
The check data transmission unit 330 transmits check data associated with the identification data stored in the external device to the external device. The external device stores the version information and the identification data. Accordingly, when only the check data is updated, the updated check data can be stored so that the updated check data matches both the version information and the identification data.
A method for collecting data about the abnormal termination of a program according to a further embodiment of the present invention will be described with reference to FIG. 3.
A data collection apparatus 400 receives a request to verify the settings of check data from an external device, and transmits the settings of check data to the external device that requested the verification of the settings of check data. As described above, the check data includes hardware and software specifications of a computer or the like which was targeted for abnormal termination. According to an embodiment of the present invention, the step of receiving the check data may include the step of receiving a request to verify the settings of check data from an external device 500 and transmitting the settings of preset data items to be collected to the external device, and the step of receiving at least one piece of check data collected depending on the transmitted settings.
At step S200, version information and identification data are received, and it is determined whether the received version information and identification data are stored in a debug DB. According to an embodiment of the present invention, the debug DB is characterized in that it stores data including version information, and may receive version information and identification data from the external device. According to an embodiment of the present invention, the debug DB may include a binary data format file constituting debugging information, may be generated in the case where a source code or the like is compiled, and may be implemented as a Program Debug Database (PDB). Therefore, there is an advantage in that if a dump file and an error DB file are present when an error occurs, it is possible to identify even the detailed function address of the corresponding error using the debug DB.
The data collection apparatus 400 determines whether pieces of identification data including the same version information as the received version information are stored in a debug DB 600. When the version codes are different, it can be determined that the received version code is erroneous. The data collection apparatus 400 determines whether the same data as the input identification data is present among the pieces of identification data that include the same version information and that are stored in the debug DB.
At step S210, whether the corresponding identification data is stored is determined, and then data is updated. The data update step is configured such that if version information and identification data are stored in the debug DB, check data is updated, and such that if identification data is not stored in the debug DB, the identification data and check data are updated.
According to an embodiment of the present invention, if version information and identification data are stored in the debug DB, an identification count for the identification data is incremented at step S220.
The identification count denotes a value counting the number of duplicate dump files or the number of times the same error occurred because identification data has a unique value. For example, when the same identification data as input identification data is previously stored in the debug DB, an identification count can be incremented by 1. Therefore, from the standpoint of a program developer or manager, there is an advantage in that the identification count is incremented for the same error, thus simultaneously processing duplicate errors, and in that the identification count is used for errors caused by a plurality of users, thus reducing the processing load of error data.
If identification data is not stored in the debug DB, identification data is updated at step S230. The case where the identification data is not stored means that there is no duplicate dump file or that the same error has never occurred before, so that identification data about the transmitted version information is updated. For example, if a list of pieces of identification data depending on pieces of version information is stored, the identification data is added to the stored list and can then be updated.
At step S240, the step of updating check data is configured to update check data matching the version information and the identification data. Therefore, in accordance with an embodiment of the present invention, if version information and identification data are present in the debug DB, the identification count is incremented. When the same type of error has never occurred before and then identification data is not present in the debug DB, new identification data is added to the debug DB, so that check data can be classified and updated based on the version information received by the data collection apparatus and the identification data.
An apparatus for collecting data about the abnormal termination of a program according to yet another embodiment of the present invention will be described with reference to FIG. 4, wherein the apparatus uses a debug DB for storing data including version information. A data collection apparatus 400 may include a check data setting unit 410, a debug DB determination unit 430, and a debug DB update unit 450.
The check data setting unit 410 receives a request to verify the settings of check data, and transmits the requested settings of the check data.
The debug DB determination unit 430 receives version information and identification data, and determines whether the version information and the identification data are stored in the debug DB.
If the version information and the identification data are stored in the debug DB, the debug DB update unit 450 receives check data and updates the check data in the debug DB, whereas if identification data is not stored in the debug DB, the debug DB update unit 450 receives identification data and check data and updates the identification data and the check data in the debug DB. In accordance with an embodiment of the present invention, if the version information (code) and identification data are stored in the debug DB, the debug DB update unit 450 receives check data and updates it in the debug DB, and increments an identification count for the identification data. If identification data is not stored in the debug DB, the debug DB update unit 450 may receive identification data and check data and update them in the debug DB.
The embodiments of the present invention can be implemented in the form of a computer program. Code and code segments constituting the computer program can be easily deduced by computer programmers skilled in the art. Further, the computer program is stored in computer-readable recording media and is read and executed by the computer, so that the embodiments are implemented. The computer-readable recording media include magnetic recording media, optical recording media, and carrier wave media.
As described above, the present invention is advantageous in that services are provided to be capable not only of collecting cause data indicating the cause of errors, but also of managing errors based on versions using the version information of programs and a debug DB, and in that a program developer or manager can identify even the detailed function address of the corresponding error using the cause data about the cause of errors and the debug DB.
As described above, the present invention has been described based on preferred embodiments. Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention. Therefore, the disclosed embodiments should be taken into consideration from a descriptive aspect rather than a restrictive aspect. The scope of the present invention is defined in the accompanying claims rather than the above-described description, and all differences falling within the equivalent scope thereof should be interpreted as being included in the scope of the present invention.

Claims (14)

  1. A method for providing data about abnormal termination of a program, comprising:
    extracting cause data including version information of an abnormally terminated program;
    performing an error data generation operation by collecting at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and by generating identification data about a cause of the abnormal termination using the cause data; and
    transmitting the collected check data and the generated identification data to an outside.
  2. The method of claim 1, wherein the generating the identification data is configured to generate the identification data by applying a hash function to the cause data.
  3. The method of claim 2, wherein the generating the identification data comprises:
    extracting an error exception code and an offset code from the cause data; and
    generating a combined code by combining the error exception code with the offset code, and generating the identification data from a hash code generated by applying a hash function to the combined code.
  4. The method of claim 1, wherein the collecting the check data is configured to verify settings of the check data and collect at least one piece of check data corresponding to the verified settings.
  5. The method of claim 1, wherein the transmitting to the outside comprises:
    determining whether the version information and the identification data are stored in an external device;
    if the identification data is not stored in the external device, transmitting the identification data to the external device; and
    transmitting the check data associated with the identification data to the external device.
  6. The method of claim 1, wherein the version information is encoded such that the version information is encrypted using an authentication key.
  7. The method of claim 1, wherein the error data generation operation is called before the abnormal termination or within a preset period of time after the abnormal termination.
  8. The method of claim 1, further comprising:
    determining whether the identification data and the check data have been normally transmitted to the external device;
    if the identification data and the check data have been abnormally transmitted, retransmitting the identification data and the check data to an external device; and
    if the identification data and the check data have been normally transmitted, deleting the cause data and the check data.
  9. An apparatus for providing data about abnormal termination of a program, comprising:
    a status check unit configured to extract cause data including version information of an abnormally terminated program;
    an error data generation unit configured to collect at least one piece of check data specifying hardware or software of a device that is executing the abnormally terminated program and to generate identification data about a cause of the abnormal termination using the cause data; and
    a data transmission unit configured to transmit the collected check data and the generated identification data to an outside.
  10. The apparatus of claim 9, wherein the error data generation unit comprises:
    a check data collection unit configured to verify settings of the check data and collect at least one piece of check data depending on the verified settings; and
    an identification data generation unit configured to generate the identification data by applying a hash function to the cause data.
  11. The apparatus of claim 10, wherein the identification data generation unit comprises:
    a code data extraction unit configured to extract an error exception code and an offset code from the cause data; and
    an identification data generation unit configured to generate a combined code by combining the error exception code with the offset code, and generate the identification data from a hash code generated by applying a hash function to the combined code.
  12. The apparatus of claim 9, wherein the data transmission unit comprises:
    an identification data transmission unit configured to determine whether the version information and the identification data are stored in an external device, and if the identification data is not stored in the external device, transmit the identification data to the external device; and
    a check data transmission unit configured to transmit the check data associated with the identification data to the external device.
  13. The apparatus of claim 9, wherein the error data generation unit is called before the abnormal termination or within a preset period of time after the abnormal termination.
  14. A computer-readable recording medium for recording the method for providing the data about abnormal termination of the program of any one of claims 1 to 8, wherein the method is recorded to be executable on the computer.
PCT/KR2012/006615 2011-11-14 2012-08-21 Method and apparatus for providing and collecting data about abnormal termination of program Ceased WO2013073762A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0118485 2011-11-14
KR1020110118485A KR101338150B1 (en) 2011-11-14 2011-11-14 Method and apparatus for providing data about abnormal termination of program

Publications (1)

Publication Number Publication Date
WO2013073762A1 true WO2013073762A1 (en) 2013-05-23

Family

ID=47445811

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/006615 Ceased WO2013073762A1 (en) 2011-11-14 2012-08-21 Method and apparatus for providing and collecting data about abnormal termination of program

Country Status (4)

Country Link
KR (1) KR101338150B1 (en)
CN (1) CN102866932A (en)
TW (1) TW201319799A (en)
WO (1) WO2013073762A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295331A (en) * 2016-08-22 2017-01-04 浪潮电子信息产业股份有限公司 A Design Method of Active Defense and Abnormal Reporting System

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101310070B1 (en) * 2013-06-26 2013-09-24 (주)지란지교소프트 Method for preventing collision between each programs and recording-medium recorded program thereof
KR101489142B1 (en) * 2013-07-12 2015-02-05 주식회사 안랩 Client system and control method thereof
CN105354131A (en) * 2015-12-11 2016-02-24 北京慧眼智行科技有限公司 Monitoring method for running of service program and device
KR101860674B1 (en) * 2017-06-20 2018-05-23 넷마블 주식회사 Method, Server and Computer Program for Crash Report Grouping
KR102158775B1 (en) * 2018-05-15 2020-09-22 넷마블 주식회사 Method, Server and Computer Program for Crash Report Grouping
KR102256894B1 (en) * 2018-05-15 2021-06-01 넷마블 주식회사 Method, Server and Computer Program for Crash Report Grouping

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033281A1 (en) * 2005-08-02 2007-02-08 Hwang Min J Error management system and method of using the same
KR20080022889A (en) * 2006-09-08 2008-03-12 삼성전자주식회사 Method and device for generating debugging file in embedded system
US20110150507A1 (en) * 2009-12-17 2011-06-23 Samsung Electronics Co., Ltd Systems and methods of managing errors of an image forming apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383470B2 (en) * 2004-09-30 2008-06-03 Microsoft Corporation Method, system, and apparatus for identifying unresponsive portions of a computer program
KR100717241B1 (en) * 2005-08-02 2007-05-11 엔에이치엔(주) Error Management System and Error Management Method Using the Same
CN102063344A (en) * 2009-11-18 2011-05-18 中兴通讯股份有限公司 Method and system for system fault information dump

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033281A1 (en) * 2005-08-02 2007-02-08 Hwang Min J Error management system and method of using the same
KR20080022889A (en) * 2006-09-08 2008-03-12 삼성전자주식회사 Method and device for generating debugging file in embedded system
US20110150507A1 (en) * 2009-12-17 2011-06-23 Samsung Electronics Co., Ltd Systems and methods of managing errors of an image forming apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295331A (en) * 2016-08-22 2017-01-04 浪潮电子信息产业股份有限公司 A Design Method of Active Defense and Abnormal Reporting System

Also Published As

Publication number Publication date
CN102866932A (en) 2013-01-09
KR20130053027A (en) 2013-05-23
TW201319799A (en) 2013-05-16
KR101338150B1 (en) 2013-12-06

Similar Documents

Publication Publication Date Title
WO2013073762A1 (en) Method and apparatus for providing and collecting data about abnormal termination of program
US7984334B2 (en) Call-stack pattern matching for problem resolution within software
CN113448854A (en) Regression testing method and device
US8661543B2 (en) Mobile terminal having security diagnosis functionality and method of making diagnosis on security of mobile terminal
US20080141224A1 (en) Debug information collection method and debug information collection system
WO2013169059A1 (en) System and method for monitoring web service
WO2013077538A1 (en) Device and method for analyzing api-based application
CN111782526A (en) Interface testing method and device, electronic equipment and storage medium
WO2018182126A1 (en) System and method for authenticating safe software
US20060064598A1 (en) Illegal access preventing program, apparatus, and method
CN117914755A (en) Link stress testing method, system, device and storage medium based on microservice architecture
WO2012153879A1 (en) Exception handling test device and method thereof
Wi et al. Diffcsp: Finding browser bugs in content security policy enforcement through differential testing
CN117667643A (en) Evolution method, device, computing device cluster and storage medium of test case set
Yang et al. {ORANalyst}: Systematic Testing Framework for Open {RAN} Implementations
WO2021243555A1 (en) Quick application test method and apparatus, device, and storage medium
Ognawala et al. Compositional fuzzing aided by targeted symbolic execution
CN109214189B (en) Method, device, storage medium and electronic equipment for identifying program bugs
CN117009184A (en) Method for maintaining version consistency without stopping upgrading and application under Yun Yuan
CN119759734B (en) Debugging methods and systems for applications, electronic devices
CN111046393B (en) Vulnerability information uploading method and device, terminal equipment and storage medium
CN111367867A (en) Log information processing method and device, electronic equipment and storage medium
CN117290244A (en) Interface test case generation method and device, computer equipment and storage medium
KR20140056793A (en) Method and system for analyzing error log of software
Riom et al. An in-depth analysis of android’s java class library: its evolution and security impact

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12849856

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12849856

Country of ref document: EP

Kind code of ref document: A1