EP0403415A2

System and method for detecting and diagnosing errors in a computer program.

Abstract

A process for detecting errors in a computer program and automatically gathering diagnostic data limited to the error to be resolved. Error detection code is placed within the program during program development. When an error or failure is detected, this process is called and captures only the data required to debug the error. The error detection code notifies the process of which data to capture by selecting entries from a table within the process. This table, known as an Application Data Table (ADT), contains the. layout and format of all data areas used by the calling problem program and information re­quired to build a generic alert and send the generic alert to a computer network monitor program. This process is only called conditionally when an error is detected. It is completely idle until such a condition occurs.

EP0403415A2, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Projected expiry passed 29 May 2010, 16.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

15 claims: 5 independent, 10 dependent

  1. 1
    A method of detecting and diagnosing errors in a computer program executing on a data processing system, comprising the steps of:defining the internal structure of the computer program and recording said structure in at least one predefined table in a disk file, placing error detection points within said program, which are activated individually by the occurrence of a software error to signal when diagnostic data is to be collected, responsive to the receipt of a signal to collect diagnostic data generated by an activated error detection point, transferring control of said program to a data collection and reporting routine, collecting and storing diagnostic data based on a first set of keyword-value pairs passed by the acti­vated error detection point on a macro call to said data collection and reporting routine, and the pro­gram structure contained in said predefined table, generating a unique software symptom string identifi­er under control of a data collection and reporting routine, and recording said symptom string identifier in a soft­ware problem error log.
  2. 2
    The method according to Claim 1 further comprising the steps of constructing an error generic alert and forwarding said generic alert to a network monitor.
  3. 3
    The method according to Claim 2 wherein the step of defining the internal structure of the computer program includes coding a set of predefined macros as a separate job in parallel with the coding of said program to determine the data to be collected and the type of generic alert to be built.
  4. 4
    The method according to Claim 1 or 2 further includ­ing the step of returning control back to the comput­er program after said dianostic data is collected and continuing with program execution.
  5. 5
    The method according to any one of Claims 1 to 4, wherein said symptom string contains a second set of keyword-value pairs which uniquely describe and identify the error.
  6. 6
    The method according to Claim 5 wherein the symptom spring identifier contains the program name, the program version and release level, the program module that detected the error, and a unique detection point identifier.
  7. 7
    The method according to any one of the preceding Claims, wherein said predefined table contains iden­tifying information for the corresponding program, the layout and format of each data structure and control block used by said program, the category of the error, the cause of the error detected, and the action required to resolve the error.
  8. 8
    The method according to any one of the preceding Claims, wherein the step of placing error detection points within said program includes locating macro calls to the data collection and reporting routine at points within said program that can be reached only if an error occurs.
  9. 9
    The method according to any one of the preceding Claims, wherein the step of collecting and storing diagnostic data includes loading said predefined table into memory from the disk file, and based on the first set of keyword-value pairs contained in the macro call to the data collection and reporting routine, collecting from program storage the data identified by said keyword-value pairs and writing said collected data to a dump file.
  10. 10
    The method according to Claim 9 wherein the software problem error log contains an identification of the processor and operating system executing the program, the date and time the data collection and reporting routine was invoked, the name of the dump file con­taining said collected data, an identification of the problem program, and the unique software symptom string.
  11. 11
    A system for detecting and diagnosing errors in a computer program executing on a data processing system comprising:means for generating at least one predefined table that is representative of the internal structure of said program and saving said predefined table in a disk file, error detection means located at points within said program that can be accessed only if an error has occurred for interrupting execution of said program, and data collection and reporting means for collecting and storing diagnostic data when signalled by the error detection means and generating a unique symptom string that uniquely describes and identifies the error.
  12. 12
    The system according to Claim 11 including means for constructing an error generic alert and forwarding said generic alert to a network monitor.
  13. 13
    The system according to Claim 11 or 12 further in­cluding means for generating an error record for said error and recording said error record in an error log on a permanent storage medium.
  14. 14
    The system according to Claim 11, 12 or 13 further including storage means for permanently recording said diagnostic data and symptom string in a data file.
  15. 15
    The system according to any one of Claims 11 to 14 further including means for transferring control from said program to said data collection and reporting means when signalled by said error detection means and means for returning control to said software program after said diagnostic data is collected.