US5119377A - System and method for software error early detection and data capture - Google Patents
System and method for software error early detection and data capture Download PDFInfo
- Publication number
- US5119377A US5119377A US07/367,403 US36740389A US5119377A US 5119377 A US5119377 A US 5119377A US 36740389 A US36740389 A US 36740389A US 5119377 A US5119377 A US 5119377A
- Authority
- US
- United States
- Prior art keywords
- error
- data
- software
- software program
- program
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Definitions
- Patent application Ser. No. 261,212 by M. C. Rhodes et al, filed Oct. 24, 1988, entitled, "Intra-System Program to Program Communication Facility,” discloses a cross memory data transport facility that provides a high level, easy-to-use interface by which a user program can send a copy of a data buffer to another user program.
- the user programs can be executing in the same or different address spaces.
- Patent application Ser. No. 063,618 now U.S. Pat. No. 4,965,772 by A. A. Daniel et al, filed Jun.
- tracing To use tracing, trace points must be placed within the problem program in order to sample data through the path of execution. The problem is recreated, if possible, and data from the trace points are collected.
- tracing has some bad side effects including the following: 1) tracing requires a branch to a trace routine every time a trace point is encountered, often resulting in a significant impact to not only the problem program's performance but to other programs executing on the same system; 2) tracing requires large data sets to contain the volumes of data generated by trace points; 3) for the programmer that uses tracing to capture diagnostic data, he invariably finds himself sifting through the large amounts of data, the majority of which does not reflect on the cause of the error; 4) if the software problem was caused by a timing problem between two programs (e.g., two networking programs communicating with each other), the trace can slow the program execution down to the point where most timing problems cannot be recreated; 5) after the program problem is fixed, all the trace points must be removed and the program recompiled before it
- U.S. Pat. Nos. 4,802,165, 3,551,659 and 3,937,938 discloses a method and apparatus for debugging computer programs by using macro calls inserted in the program at various locations. The system records trace outputs from the program under test with the trace output being generated unconditionally, that is, whether or not an error has occurred.
- U.S. Pat. No. 3,551,659 issued to Forsythe discloses a method for debugging computer programs by testing the program at various test points and automatically recording error status information on an output device. Each chosen test point causes the invoking of an unconditional transfer to an error checking routine.
- U.S. Pat. No. 3,937,938 issued to Matthews discloses a method for assisting in the detection of errors and the debugging of programs by permanently storing in a memory structure the sixteen most recently executed program instructions upon the occurrence of a program malfunction.
- the existing process for software error correction embraces a methodology which waits for the damage caused by a software error to surface. Then, data trace points are inserted, the problem is recreated, and the execution path of the problem program is followed while large amounts of data are collected, hopefully catching the data that will determine what went wrong.
- EDDC Early Detection Data Capture
- the EDDC process provides a sophisticated data capture function and notification mechanism for software errors with minimal information required from the error detection code within the software problem program.
- the EDDC process provides this capability through the use of a predefined table that describes the layout and format of data structures and storage areas used by the problem program.
- the call to the EDDC process includes basic information about the data that is not to be collected and the type of generic alert to be built for the notification.
- the Early Detection Data Capture process uses permanently placed error detection points located strategically within a software program when initially developed. The detection points check the status of the software program throughout its execution. If an error is detected, the EDDC process is called. Unless an error is detected, the EDDC process remains completely inactive.
- FIG. 1 is a diagrammatic representation illustrating the building of Application Data Tables.
- FIG. 2 is an illustration of a format of the application table header entry.
- FIG. 3 is an illustration of the format of an application data structure entity entry.
- FIG. 4 is an illustration of the format of the generic alert descriptor entry.
- FIG. 5 is an illustration of the format of a generic alert causes entry.
- FIG. 6 is an illustration of the format of a generic alert recommended action entry.
- FIG. 7 is a diagrammatic representation of the Early Detection Data Capture process usage and operation.
- FIGS. 8A and 8B illustrate the format of the error log record generated by the Early Detection Data Capture process.
- FIG. 9 is a table illustrating cross references between Application Data Table entry fields and the generic alert fields.
- FIG. 10 is a diagrammatic representation of an implementation of the Early Detection Data Capture process in a computer network that supports generic alerts.
- the EDDC process requires construction of a table which will be referred to as the Application Data Table (ADT). Its entries contain detailed information about the problem program and are selected by the error detection code as parameters on the call to the EDDC process.
- the EDDC process uses this table information to generate a dump of specific program storage areas, to create an entry in a software error log and to build a software generic alert.
- This table is the backbone of the EDDC process. It is a predefined table that provides the process with all the information required to provide useful and meaningful diagnostic data outputs.
- the table 10 is built using a set of software macros 20 which are fully described in the Appendix.
- Table entry information is selected by the error detection code and passed to the process via a macro call also described in the Appendix. This selection tells the process what is to be captured and the type of generic alert to be built.
- the ADT 10 contains one or more of the following entry types: an application data header, an application data structure entity, a generic alert descriptor, generic alert causes, and generic alert recommended action.
- the application data header entry 11 contain global information about the problem program. Included is the name of the problem program and its version or release level. There is only one of these entries per table. It is included in the ADT via the BLDTABLE macro 21. The format and structure of this entry is shown in FIG. 2.
- the application data structure entity table entry 12 explicitly describes the layout and format of a single data structure or control block used by a problem program. It includes information such as length and name of the data structure. It is included in the ADT via the coding of the ADSEENT macro 22. One or more of these entries are selected at the detection point, via the ADSEENTS keyword. The EDDC process uses this information to determine which areas of storage need to be captured. The structure of this table entry is shown in FIG. 3.
- the generic alert descriptor table entry 13 contains information about the category of the error detected which is required by the generic alert. It is included in the ADT via the coding of the GADSCENT macro 23. Selected at the detection point via the ALERTDSC keyword, the EDDC process uses it to build the generic alert data and probable causes subvectors for the generic alert notification. The structure of this table entry is shown in FIG. 4.
- the generic alert causes table entry 14 contains information about the cause of the error detected which is required by the generic alert. It is included in the ADT via the coding of the GACSEENT macro 24. One or more of these can be selected at the detection point via the ALERTCSE keyword. The EDDC process uses these to build the causes subvector (s) for the generic alert notification. The structure of the table entry is shown in FIG. 5.
- the generic alert recommended actions table entry 15 contains information about the action required to resolve or fix the error. It is included in the ADT via the coding of the GARACENT macro 25. One or more of these can be selected by the detection point via the ALERTRAC keyword. The EDDC process uses it to build the recommended action subvector for the generic alert notification. The structure of this table entry is shown in FIG. 6.
- the use of the EDDC process by a software program as illustrated in FIG. 7 requires two distinct operations.
- the software programmer describes the internal structure of the software program's storage usage using a set of EDDC software macros. These macros are coded as a separate job usually in parallel with the development of the software program.
- the output from these macros is a file that contains the Application Data Table (ADT) 10 whose entries describe the data structures (e.g., control blocks, data areas) used by the software program 30 and generic alert information required by the EDDC process 50.
- ADT Application Data Table
- the application programmer places error detection code 35 or alternatively, EDDC calls, at error detection points within a software program 30 during program development. These detection points 35 will detect the presence of a "should not occur" condition.
- Examples of where detection points could be placed are: 1) In software code that implements a looping function, count the number of times a loop is executed and compare it to a maximum loop value. If it exceeds this value, the EDDC process is called. 2) Whenever a program calls another program for data, verify that the other program returned the type and value range of the data that was expected. If it did not, the EDDC process is called. 3) Whenever a program issues a request for data to another program, set a timer to the maximum time of wait allowed for the reply. If the timer expires before control has returned, the EDDC process is called.
- the detection point calls the EDDC process and passes it the required information.
- the EDDC process 50 When the EDDC process 50 is called, it performs the following operations: 1) The ADT 10 named in the EDDC call 35 via the TABNAME keyword, is brought into memory from disk. (The ADT is stored as a disk file after it is built.) 2) The application data structure entity entries 12 selected by the ADSEENTS keyword on the EDDC call 35, are located by the EDDC process 50. Program storage identified by each one of these named entries is collected and placed in a single program dump file 40. The name of the dump file is dynamically built using a sequence-naming convention, selectable by the user when a process is implemented. The EDDC process 50 will select the next name in the sequence automatically.
- the user selects a root name or prefix and a number, from 1 to up to the maximum number of dump files the EDDC process 50 will create, and it is appended to the root or prefix.
- a root name could be APPLDMP and the maximum number of dump files that exist at any instance could be nine.
- the EDDC process 50 would put the first dump in APPLDMP1 and continue building dump data sets when called until APPLDMP9 was built. Thereafter, it checks to see if any previous dump data sets have been cleared. If not, the EDDC process 50 issues a message stating that no dump data sets are available and that no dump will be taken. 3) At the beginning of the dump file, a unique problem identifier known as a primary symptom string 45, is placed.
- the symptom string is composed of a set of keyword-value pairs.
- the keyword identifies the meaning of the value associated with it.
- the format of the symptom string built by the EDDC process 50 is as follows: ⁇ PIDS/xxxxxxxx LVLS/11111111 RIDS/rrrrrrr PCSS/sssssss (additional data) ⁇ .
- the ⁇ PIDS ⁇ keyword specifies that the associated value ⁇ xxxxxxxx ⁇ contains the name of the problem program that detected the error condition. This value may be either a number or a name. It is taken from the application table header entry 11 in the Application Data Table 10.
- the ⁇ LVLS ⁇ keyword specifies that the associated value ⁇ 11111111 ⁇ contains the version or release level of the problem program that detected the error. This value is taken from the application table header entry 11 in the Application Data Table 10.
- the ⁇ RIDS ⁇ keyword specifies that the associated value ⁇ rrrrrrrr ⁇ contains the name of the module or component that detected the error. This value is taken from the MODNAME keyword on the EDDC call 35.
- the ⁇ PCSS ⁇ keyword specifies that the associated value ⁇ sssssss ⁇ contains a unique detection point identifier. This value is received by the EDDC process 50 from the DETPTID keyword value passed on the EDDC call 35.
- the PCSS value is usually a sequence number that is unique within the module. Along with the module or component name from the MODNAME keyword on the EDDC call 35, this identifier will uniquely identify the detection point that detected the software error.
- the ⁇ (additional data) ⁇ is data appended to the symptom string 45 by the EDDC process 50. It is received by the EDDC process 50 via the SYMSTRDT keyword on the EDDC process call 35. This is additional information the program developer can pass to the process to be included in the symptom string.
- Each symptom string entity has a format ⁇ xxxx/vvvvvvv ⁇ where ⁇ xxxx ⁇ is a keyword that identifies the category of the associated value, ⁇ vvvvvvvv ⁇ .
- Table 1 The complete set of keywords used and supported by the EDDC process is contained in Table 1.
- a process code e.g., program operation code, command code, request code
- a storage area e.g., control block, data area
- the next ⁇ VALU ⁇ keyword will represent the value contained by this register.
- An error log data record is constructed according to the format illustrated in FIG. 8 and includes the following information: 1) An identification of the processor on which the problem program 30 that detected the error was executing. This includes the machine type and serial number. This information is accessed through the operating system services. 2) The date and time the EDDC process 50 was called. This information is accessed through the operating system services. 3) The name of the file that contains the storage dump 40. This is taken from the storage collection routine within the EDDC process 50. 4) An identification of the operating system on which the problem program 30 that detected the error was running. This information is accessed through the operating system services.
- a generic alert is constructed next for software programs executing on a processor in a computer network that supports generic alerts as illustrated diagrammatically in FIG. 10.
- a number of steps have to be performed in order to construct the generic alert.
- the generic alert data and probable causes subvectors are built from information in the generic alert descriptor entry 13 selected by the ALERTDSC keyword on the EDDC process cell 35 (FIG. 7).
- FIG. 9 illustrates a detailed mapping of the generic alert descriptor entry fields to the generic alert data and probable causes subvectors.
- the generic alert causes subvector (s) is built from information in the generic alert causes entry (s) selected by the ALERTCSE keyword on the EDDC process call 35.
- FIG. 9 again illustrates this mapping.
- the generic alert recommended action subvector is built from information in the generic alert recommended action entry (s) selected by the ALERTRAC keyword on the EDDC process call 35.
- FIG. 9 illustrates a detailed mapping of the generic alert recommended action entry fields to the generic alert recommended action subvector.
- the final three steps in the construction of the generic alert require information from the software problem error log record stored on error log 55. From the error log record, the date/time subvector, the product identification subvector and the correlation subvector are built. The correlation subvector includes the name of the file that contains the storage dump 40.
- the macros used to build the ADT are BLDTABLE, ADSEENT, GADSCENT, GACSEENT and GARACENT.
- the formats of these macros are described in the following paragraphs.
- the BLDTABLE macro is used to start the build ADT process. It is the first macro in the ADT built program and is present once for every ADT table built. Its output is the first entry, the Application Data Header entry, in the table.
- the format of this macro is as follows:
- ⁇ tablname ⁇ is the name given to this ADT; (This table is selected by this name through the TABNAME keyword value used on the EDDC call at the detection point.)
- ⁇ pgmname ⁇ is the name of the program to which this data pertains
- ⁇ pgmversn ⁇ is the version or release level of the program
- ⁇ svclevel ⁇ is the level of corrective service already applied to the program.
- the ADSEENT macro is used to place an Application Data Structure Entity entry into the ADT. This macro builds a description of a data structure or control block used by the software program.
- One or more ADSEENT macros may be present, each having the following format:
- ⁇ entrname ⁇ is the name assigned to this entry
- ⁇ lenadrs ⁇ is an offset into the data structure where the length of the data structure is located
- ⁇ nextadrs ⁇ is the offset into this data structure where the address of the next data structure, chained off of this data structure, is located; (This keyword is only used if this data structure being described is a link in a series of chained data structures.
- ⁇ stidadrs ⁇ is the offset into this data structure where the last-in-chain identifier is located; (This keyword is only used if this data structure being described is a link in a series of chained data structures. This identifier tells the EDDC process that this is the last data structure in a series of chained data structures.)
- ⁇ stpidval ⁇ is the value that will be used for comparison when checking to see when a last in chain data structure is found while the EDDC process is dumping a chain of data structures
- ⁇ dsidadr ⁇ is the offset into this data structure where the data structure identifier is located; (This identifier value is compared to the identifier value assigned to the DSID keyword to assure the correct data structure was found.)
- ⁇ dsidval ⁇ is the value to be used in the comparison to the data structure identifier found in this data structure, pointed to be the DSIDADR keyword;
- ⁇ dstitle ⁇ is the title that will be put above this data structure when dumped.
- the GADSCENT macro is used to place a Generic Alert Descriptor entry into an ADT. This macro builds an entry that contains information required to build two of the Generic Alert subvectors, namely, the Generic Alert Data and the Probable Caused subvectors.
- One or more GADSCENT macros may be present, each having the following format:
- ⁇ entrname ⁇ is the name assigned to this entry
- ⁇ errcatgy ⁇ is the category of the failure (e.g., permanent, temporary, unknown);
- ⁇ desccp ⁇ is a two-byte hexadecimal code point that represents the overall error description
- ⁇ probccp1 ⁇ -- ⁇ probccpx ⁇ are one to five hexadecimal code points that identify the probable cause of the error.
- Code point is a term used by the Systems Network Architecture Generic Alert function. It represents a two-byte hexadecimal value that describes an aspect of the failure. Details of this information can be found in the IBM Systems Network Architecture Formats Manual, order number GA27-3136.
- the GACSEENT macro is used to place a Generic Alert Causes entry into an ADT. This macro builds an entry that contains information required to build the Generic Alert Causes subvectors.
- One or more GACSEENT macros may be present, each having the following format:
- ⁇ entrname ⁇ is the name assigned to this entry
- ⁇ causecat ⁇ is the category of the cause (e.g., install error, user error, defect, unknown);
- ⁇ causecp ⁇ is a two-byte hexadecimal code point that identifies the cause of the failure
- ⁇ texttype ⁇ is a one-byte value that identifies what the ⁇ text ⁇ value represents (e.g., program check code, return code, error code);
- ⁇ text ⁇ is the text data associated with the code point (see ⁇ causecp ⁇ ) ⁇
- text data may be required as an inserted message into the text associated with the selected code point.
- the GARACENT macro is used to place a Generic Alert Recommended Action entry into an ADT. This macro builds an entry that contains information required to build the Generic Alert Recommended Actions subfield.
- One or more GARACENT macros may be present, each having the following format:
- ⁇ entrname ⁇ is the name assigned to this entry
- ⁇ racodept ⁇ is a two-byte hexadecimal code point that identifies the action required to resolve the failure
- ⁇ texttype ⁇ is a one-byte value that identifies that the ⁇ text ⁇ values represents (e.g., program check code, return code, error code);
- ⁇ text ⁇ is the text data associated with the code point (see ⁇ racodept ⁇ above).
- text data may be required as an inserted message into the text associated with the selected code point.
- the EDDC process is accessed through a call and requires information that determines the data captured and the type of generic alert generated.
- the format of the call and a description of this information is documented below.
- ⁇ table -- name ⁇ is the name of the ADT to be used by the EDDC process
- ⁇ entry1 ⁇ is the name of an Application Data Structure Entity entry that describes a data structure that needs to be captured and ⁇ address ⁇ is the starting address within the problem program of the data structure; (Each ⁇ entry -- ⁇ must have an ⁇ address ⁇ .)
- ⁇ address ⁇ is the storage address within the problem program where the data structure is located
- ⁇ module -- name ⁇ is the name of the module or component which detected the error (i.e., from where the detection point was "tripped");
- ⁇ dpid ⁇ is a value that uniquely identifies the detection point within the module/component identified by the MODNAME keyword
- ⁇ category ⁇ is the classification of the error detected (e.g., loop, wait, incorrect data);
- ⁇ keyword ⁇ is the symptom string keyword that describes the value ⁇ value ⁇ ; (Table 1 provides a list of support symptom string keywords and their meaning.)
- ⁇ value ⁇ is the value associated with the symptom string identifier ⁇ keyword ⁇
- ⁇ alert -- dscentnm ⁇ is the name of the Generic Alert Descriptor entry in the ADT named by the TABNAME keyword that pertains to the error;
- ⁇ alert -- csentnm-- ⁇ is the name of the Generic Alert Cause entry(s) in the ADT named by the TABNAME keyword that pertains to the error; (One or more of these names may be included.)
- ⁇ alert -- raentnm -- ⁇ is the name of the Generic Alert Recommended Action entry(s) in the ADT named by the TABNAME keyword that pertains to the error. (One or more of these names may be included.)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
A process for detecting software errors in a computer program and automatically gathering diagnostic data limited to the error to be resolved. Error detection code is placed within the software program during program development. When an error or failure is detected, this process is called and captures only the data required to debug the software 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 required 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.
Description
This application is related to the following co-pending applications having the same assignee. Patent application Ser. No. 261,212 by M. C. Rhodes et al, filed Oct. 24, 1988, entitled, "Intra-System Program to Program Communication Facility," discloses a cross memory data transport facility that provides a high level, easy-to-use interface by which a user program can send a copy of a data buffer to another user program. The user programs can be executing in the same or different address spaces. Patent application Ser. No. 063,618 now U.S. Pat. No. 4,965,772 by A. A. Daniel et al, filed Jun. 15, 1987 entitled, "Method and Apparatus for Communications Network Alert Message Construction," discloses an event notification device for a computer network in which bit strings referred to as code points are used to index predefined tables containing brief text messages used in building an operator's information display.
Historically, most software has been designed under the assumption that it will never fail. Software has little or no error detection capability designed into it. When a software error or failure does occur, it is usually the computer operating system that detects the error or the computer operator cancels the execution of the software program because the program is not producing the correct results.
Upon a software error or failure, it is most common to capture the entire storage area used by the software program. However, because the error occurs before the program failure surfaces, the key data required to determine the cause of the error or failure is often lost or overlaid and it is not obvious how the path of execution got to the point where the error finally surfaced. Most program developers use a process called tracing to isolate a software error.
To use tracing, trace points must be placed within the problem program in order to sample data through the path of execution. The problem is recreated, if possible, and data from the trace points are collected. Unfortunately, tracing has some bad side effects including the following: 1) tracing requires a branch to a trace routine every time a trace point is encountered, often resulting in a significant impact to not only the problem program's performance but to other programs executing on the same system; 2) tracing requires large data sets to contain the volumes of data generated by trace points; 3) for the programmer that uses tracing to capture diagnostic data, he invariably finds himself sifting through the large amounts of data, the majority of which does not reflect on the cause of the error; 4) if the software problem was caused by a timing problem between two programs (e.g., two networking programs communicating with each other), the trace can slow the program execution down to the point where most timing problems cannot be recreated; 5) after the program problem is fixed, all the trace points must be removed and the program recompiled before it can be released commercially.
After all the data is collected, the cause of the program error is determined and the fix is generated and tested, another problem still faces software support personnel. If this problem occurs in another copy of the same software executing on another processor, how can it quickly be determined so resources aren't wasted trying to resolve problems that have already been resolved? This is another drawback of current methodology. When attempting to determine whether a software problem has already been discovered, reported, and/or fixed, software support personnel will rely on a problem description from the person that encountered the error or failure. However, different people will describe the same problem with different problem symptoms, making it difficult, it not impossible, to identify an already-known problem and match it up with the existing solution. A software programmer may spend several hours or days reviewing diagnostic data for a software problem only to find later that the software problem had been reported and resolved at an earlier time.
Typical of the prior art are U.S. Pat. Nos. 4,802,165, 3,551,659 and 3,937,938. U.S. Pat. No. 4,802,165 issued to Ream discloses a method and apparatus for debugging computer programs by using macro calls inserted in the program at various locations. The system records trace outputs from the program under test with the trace output being generated unconditionally, that is, whether or not an error has occurred. U.S. Pat. No. 3,551,659 issued to Forsythe discloses a method for debugging computer programs by testing the program at various test points and automatically recording error status information on an output device. Each chosen test point causes the invoking of an unconditional transfer to an error checking routine. U.S. Pat. No. 3,937,938 issued to Matthews discloses a method for assisting in the detection of errors and the debugging of programs by permanently storing in a memory structure the sixteen most recently executed program instructions upon the occurrence of a program malfunction.
In summary, the existing process for software error correction embraces a methodology which waits for the damage caused by a software error to surface. Then, data trace points are inserted, the problem is recreated, and the execution path of the problem program is followed while large amounts of data are collected, hopefully catching the data that will determine what went wrong.
It is an object of this invention to provide a method for detecting a software error immediately upon its occurrence and automatically collecting a limited amount of diagnostic data which will facilitate problem isolation and correction.
It is another object of this invention to provide a system for error detection that is enabled conditionally as a result of a software error in a problem program and that otherwise remains dormant.
It is a further object of this invention to provide a system for error detection that relies on the permanent placement of macro calls at error detection points within the software program rather than on temporarily inserted macro calls at selected trace points which are then removed after debugging is complete.
It is a still further object of this invention to automatically build a symptom string from the captured data which uniquely identifies the problem and to generate a generic alert to a network monitor.
It is a still further object of this invention to provide a system for error detection and isolation which minimizes the overhead related to debugging a program thus minimizing the impact on computer resources.
These and other objects and advantages are achieved by a process utilizing a methodology that calls for the conditional checking of software processing at strategic places within a program. When this logic detects an error, the process is called and collects only the data required to diagnose the error. This process is known as the Early Detection Data Capture (EDDC) process. It is a table-driven data collection and reporting routine which captures very specific program information, identified at the point of error detection. It builds a unique problem identifier, known as a software symptom string, and sends an automatic notification of the problem to an operator as is done, for example, using the IBM System Network Architecture generic alert function in a computer network utilizing this architecture.
The EDDC process provides a sophisticated data capture function and notification mechanism for software errors with minimal information required from the error detection code within the software problem program. The EDDC process provides this capability through the use of a predefined table that describes the layout and format of data structures and storage areas used by the problem program. When an error is detected, the call to the EDDC process includes basic information about the data that is not to be collected and the type of generic alert to be built for the notification.
The Early Detection Data Capture process uses permanently placed error detection points located strategically within a software program when initially developed. The detection points check the status of the software program throughout its execution. If an error is detected, the EDDC process is called. Unless an error is detected, the EDDC process remains completely inactive.
There are five major advantages of the Early Detection Data Capture process. First, error detection points are permanently placed within a software program during its development. No additional code (e.g., trace points) is required when the software program encounters an error. Second, the data required to diagnose the software error is captured the first time the error occurs with the new process and does not required problem recreation. Third, errors detected early can be stopped before permanent program damage can occur (e.g., database corruption, program code overlay) unlike the current process where an error detection occurs almost always too late. Fourth, less data is collected to diagnose the error resulting in smaller data dump listings, less data to store (less disk space), and less processing time by the computer to collect and output the data. Trace points, on the other hand, capture a significant amount of data. Fifth, early error detection increases the probability of successful error isolation, resulting in less chance of a complete software program failure. The end result is a software program with a higher availability rate.
FIG. 1 is a diagrammatic representation illustrating the building of Application Data Tables.
FIG. 2 is an illustration of a format of the application table header entry.
FIG. 3 is an illustration of the format of an application data structure entity entry.
FIG. 4 is an illustration of the format of the generic alert descriptor entry.
FIG. 5 is an illustration of the format of a generic alert causes entry.
FIG. 6 is an illustration of the format of a generic alert recommended action entry.
FIG. 7 is a diagrammatic representation of the Early Detection Data Capture process usage and operation.
FIGS. 8A and 8B illustrate the format of the error log record generated by the Early Detection Data Capture process.
FIG. 9 is a table illustrating cross references between Application Data Table entry fields and the generic alert fields.
FIG. 10 is a diagrammatic representation of an implementation of the Early Detection Data Capture process in a computer network that supports generic alerts.
The EDDC process requires construction of a table which will be referred to as the Application Data Table (ADT). Its entries contain detailed information about the problem program and are selected by the error detection code as parameters on the call to the EDDC process. The EDDC process uses this table information to generate a dump of specific program storage areas, to create an entry in a software error log and to build a software generic alert. This table is the backbone of the EDDC process. It is a predefined table that provides the process with all the information required to provide useful and meaningful diagnostic data outputs.
With reference to FIG. 1, the table 10 is built using a set of software macros 20 which are fully described in the Appendix. Table entry information is selected by the error detection code and passed to the process via a macro call also described in the Appendix. This selection tells the process what is to be captured and the type of generic alert to be built. The ADT 10 contains one or more of the following entry types: an application data header, an application data structure entity, a generic alert descriptor, generic alert causes, and generic alert recommended action.
The application data header entry 11 contain global information about the problem program. Included is the name of the problem program and its version or release level. There is only one of these entries per table. It is included in the ADT via the BLDTABLE macro 21. The format and structure of this entry is shown in FIG. 2.
The application data structure entity table entry 12 explicitly describes the layout and format of a single data structure or control block used by a problem program. It includes information such as length and name of the data structure. It is included in the ADT via the coding of the ADSEENT macro 22. One or more of these entries are selected at the detection point, via the ADSEENTS keyword. The EDDC process uses this information to determine which areas of storage need to be captured. The structure of this table entry is shown in FIG. 3.
The generic alert descriptor table entry 13 contains information about the category of the error detected which is required by the generic alert. It is included in the ADT via the coding of the GADSCENT macro 23. Selected at the detection point via the ALERTDSC keyword, the EDDC process uses it to build the generic alert data and probable causes subvectors for the generic alert notification. The structure of this table entry is shown in FIG. 4.
The generic alert causes table entry 14 contains information about the cause of the error detected which is required by the generic alert. It is included in the ADT via the coding of the GACSEENT macro 24. One or more of these can be selected at the detection point via the ALERTCSE keyword. The EDDC process uses these to build the causes subvector (s) for the generic alert notification. The structure of the table entry is shown in FIG. 5.
The generic alert recommended actions table entry 15 contains information about the action required to resolve or fix the error. It is included in the ADT via the coding of the GARACENT macro 25. One or more of these can be selected by the detection point via the ALERTRAC keyword. The EDDC process uses it to build the recommended action subvector for the generic alert notification. The structure of this table entry is shown in FIG. 6.
The use of the EDDC process by a software program as illustrated in FIG. 7 requires two distinct operations. First, the software programmer describes the internal structure of the software program's storage usage using a set of EDDC software macros. These macros are coded as a separate job usually in parallel with the development of the software program. The output from these macros is a file that contains the Application Data Table (ADT) 10 whose entries describe the data structures (e.g., control blocks, data areas) used by the software program 30 and generic alert information required by the EDDC process 50. Second, the application programmer places error detection code 35 or alternatively, EDDC calls, at error detection points within a software program 30 during program development. These detection points 35 will detect the presence of a "should not occur" condition.
Examples of where detection points could be placed are: 1) In software code that implements a looping function, count the number of times a loop is executed and compare it to a maximum loop value. If it exceeds this value, the EDDC process is called. 2) Whenever a program calls another program for data, verify that the other program returned the type and value range of the data that was expected. If it did not, the EDDC process is called. 3) Whenever a program issues a request for data to another program, set a timer to the maximum time of wait allowed for the reply. If the timer expires before control has returned, the EDDC process is called. 4) If a software routine is called or requested to perform a service from another software routine (e.g., get storage, read a database) and the call was found to be in error (e.g., the function is not supported, invalid data in the call), then the EDDC process is called.
Whenever an error detection point is "tripped", the detection point calls the EDDC process and passes it the required information. When the EDDC process 50 is called, it performs the following operations: 1) The ADT 10 named in the EDDC call 35 via the TABNAME keyword, is brought into memory from disk. (The ADT is stored as a disk file after it is built.) 2) The application data structure entity entries 12 selected by the ADSEENTS keyword on the EDDC call 35, are located by the EDDC process 50. Program storage identified by each one of these named entries is collected and placed in a single program dump file 40. The name of the dump file is dynamically built using a sequence-naming convention, selectable by the user when a process is implemented. The EDDC process 50 will select the next name in the sequence automatically. The user selects a root name or prefix and a number, from 1 to up to the maximum number of dump files the EDDC process 50 will create, and it is appended to the root or prefix. For example, a root name could be APPLDMP and the maximum number of dump files that exist at any instance could be nine. The EDDC process 50 would put the first dump in APPLDMP1 and continue building dump data sets when called until APPLDMP9 was built. Thereafter, it checks to see if any previous dump data sets have been cleared. If not, the EDDC process 50 issues a message stating that no dump data sets are available and that no dump will be taken. 3) At the beginning of the dump file, a unique problem identifier known as a primary symptom string 45, is placed. It uniquely identifies the error for later identification. The symptom string is composed of a set of keyword-value pairs. The keyword identifies the meaning of the value associated with it. The format of the symptom string built by the EDDC process 50 is as follows: `PIDS/xxxxxxxx LVLS/11111111 RIDS/rrrrrrrr PCSS/ssssssss (additional data)`.
The `PIDS` keyword specifies that the associated value `xxxxxxxx` contains the name of the problem program that detected the error condition. This value may be either a number or a name. It is taken from the application table header entry 11 in the Application Data Table 10.
The `LVLS` keyword specifies that the associated value `11111111` contains the version or release level of the problem program that detected the error. This value is taken from the application table header entry 11 in the Application Data Table 10.
The `RIDS` keyword specifies that the associated value `rrrrrrrr` contains the name of the module or component that detected the error. This value is taken from the MODNAME keyword on the EDDC call 35.
The `PCSS` keyword specifies that the associated value `ssssssss` contains a unique detection point identifier. This value is received by the EDDC process 50 from the DETPTID keyword value passed on the EDDC call 35. The PCSS value is usually a sequence number that is unique within the module. Along with the module or component name from the MODNAME keyword on the EDDC call 35, this identifier will uniquely identify the detection point that detected the software error.
The `(additional data)` is data appended to the symptom string 45 by the EDDC process 50. It is received by the EDDC process 50 via the SYMSTRDT keyword on the EDDC process call 35. This is additional information the program developer can pass to the process to be included in the symptom string. Each symptom string entity has a format `xxxx/vvvvvvvv` where `xxxx` is a keyword that identifies the category of the associated value, `vvvvvvvv`. The complete set of keywords used and supported by the EDDC process is contained in Table 1.
`AB`--specifies that `vvvvvvvv` contains an abnormal ending (ABEND) or program check code.
`ADRS`--specifies that `vvvvvvvv` contains an address or offset associated with the error detected.
`DEVS`--specifies that `vvvvvvvv` contains a value that identifies a device that is involved in a failure (e.g., device number, device address).
`FLDS`--specifies that `vvvvvvvv` contains a field, data structure, or label name associated with the error detected.
`MS`--specifies that `vvvvvvvv` contains a message number, issued by a program or device, that is associated with the error detected.
`OPCS`--specifies that `vvvvvvvv` contains a process code (e.g., program operation code, command code, request code) associated with the error detected.
`OVS`--specifies that `vvvvvvvv` contains the name of a storage area (e.g., control block, data area) whose storage was overlayed.
`PCSS`--specifies that `vvvvvvvv` contains a statement name, command, or parameter associated with the error detected.
`PRCS`--specifies that `vvvvvvvv` contains a return code, status code, condition code, or device code associated with the error detected.
`REGS`--specifies that `vvvvvvvv` contains a register type associated with the error detected. The next `VALU` keyword will represent the value contained by this register.
`RIDS`--specifies that `vvvvvvvv` contains a module, macro, subroutine, function or procedure name associated with the failure detected.
`SIG`--specifies that `vvvvvvvv` contains an operator warning signal identifier associated with the failure detected.
`VALU`--specifies that `vvvvvvvv` contains the value of a register associated with the failure detected. This keyword is used in conjunction with the `REGS` keyword.
`WS`--specifies that the `vvvvvvvv` value contains a wait state code associated with the error detected.
After the data dump is completed, control is returned back to the caller of the EDDC process 50 in order to minimize the delay to the problem program 30. An error log data record is constructed according to the format illustrated in FIG. 8 and includes the following information: 1) An identification of the processor on which the problem program 30 that detected the error was executing. This includes the machine type and serial number. This information is accessed through the operating system services. 2) The date and time the EDDC process 50 was called. This information is accessed through the operating system services. 3) The name of the file that contains the storage dump 40. This is taken from the storage collection routine within the EDDC process 50. 4) An identification of the operating system on which the problem program 30 that detected the error was running. This information is accessed through the operating system services. 5) An identification of the problem program 30 that detected the error. This information is taken from the application data header entry 11 in the Application Data Table (ADT) 10. 6) The primary symptom string. 7) A secondary symptom string which is a collection of additional data required to further identify the error. All the registers and their values at the time of error detection should be included in the secondary symptom string. The error log record is placed on a software problem error log.
A generic alert is constructed next for software programs executing on a processor in a computer network that supports generic alerts as illustrated diagrammatically in FIG. 10. A number of steps have to be performed in order to construct the generic alert. In the first step, the generic alert data and probable causes subvectors are built from information in the generic alert descriptor entry 13 selected by the ALERTDSC keyword on the EDDC process cell 35 (FIG. 7). FIG. 9 illustrates a detailed mapping of the generic alert descriptor entry fields to the generic alert data and probable causes subvectors. In the second step, the generic alert causes subvector (s) is built from information in the generic alert causes entry (s) selected by the ALERTCSE keyword on the EDDC process call 35. FIG. 9 again illustrates this mapping. In the third step, the generic alert recommended action subvector is built from information in the generic alert recommended action entry (s) selected by the ALERTRAC keyword on the EDDC process call 35. FIG. 9 illustrates a detailed mapping of the generic alert recommended action entry fields to the generic alert recommended action subvector. The final three steps in the construction of the generic alert require information from the software problem error log record stored on error log 55. From the error log record, the date/time subvector, the product identification subvector and the correlation subvector are built. The correlation subvector includes the name of the file that contains the storage dump 40. Once the generic alert 70 is constructed, it is passed from the network management program 60 executing on remote processor 200 via operating system 65 to the network management application 75 for processing at the host processor 100. Host operating system 80 then passes the notification to the network operator 85. At this point, the EDDC process is terminated.
Although the preferred embodiment has been discussed with reference to the detection and diagnosis of software errors in a single program, the system and method of this invention is readily extended to handle multiple software programs concurrently. This is accomplished by implementing the EDDC process 50 as a common routine with multiple ADTs 10 as illustrated in FIG. 7. Each software program 30 will have at least one ADT 10 associated with it.
The macros used to build the ADT are BLDTABLE, ADSEENT, GADSCENT, GACSEENT and GARACENT. The formats of these macros are described in the following paragraphs.
The BLDTABLE macro is used to start the build ADT process. It is the first macro in the ADT built program and is present once for every ADT table built. Its output is the first entry, the Application Data Header entry, in the table. The format of this macro is as follows:
______________________________________ BLDTABLE NAME=TABLNAME, APPLID=pgmname, APPLVER=pgmversn, SVCLVL-svclevel ______________________________________
where:
`tablname` is the name given to this ADT; (This table is selected by this name through the TABNAME keyword value used on the EDDC call at the detection point.)
`pgmname` is the name of the program to which this data pertains;
`pgmversn` is the version or release level of the program;
`svclevel` is the level of corrective service already applied to the program.
The ADSEENT macro is used to place an Application Data Structure Entity entry into the ADT. This macro builds a description of a data structure or control block used by the software program. One or more ADSEENT macros may be present, each having the following format:
______________________________________ ADSEENT NAME=entrname, DSLENADR=lenadrs DSNADRLN=nxadrlen, DSNXADRS=nextadrs, STPIDADR=stidadrs, STOPID=stpidval, DSIDADR=dsidadr, DSID=dsidval, DSTITLE=dstitle ______________________________________
where:
`entrname` is the name assigned to this entry;
`lenadrs` is an offset into the data structure where the length of the data structure is located;
`nextadrs` is the offset into this data structure where the address of the next data structure, chained off of this data structure, is located; (This keyword is only used if this data structure being described is a link in a series of chained data structures.
`stidadrs` is the offset into this data structure where the last-in-chain identifier is located; (This keyword is only used if this data structure being described is a link in a series of chained data structures. This identifier tells the EDDC process that this is the last data structure in a series of chained data structures.)
`stpidval` is the value that will be used for comparison when checking to see when a last in chain data structure is found while the EDDC process is dumping a chain of data structures;
`dsidadr` is the offset into this data structure where the data structure identifier is located; (This identifier value is compared to the identifier value assigned to the DSID keyword to assure the correct data structure was found.)
`dsidval` is the value to be used in the comparison to the data structure identifier found in this data structure, pointed to be the DSIDADR keyword;
`dstitle` is the title that will be put above this data structure when dumped.
The GADSCENT macro is used to place a Generic Alert Descriptor entry into an ADT. This macro builds an entry that contains information required to build two of the Generic Alert subvectors, namely, the Generic Alert Data and the Probable Caused subvectors. One or more GADSCENT macros may be present, each having the following format:
______________________________________ GADSCENT NAME=entrname, CATGY=errcatgy, DESCCDPT=desccp, PROBCCPS=(probccp1, . . .,probccpx) ______________________________________
where:
`entrname` is the name assigned to this entry;
`errcatgy` is the category of the failure (e.g., permanent, temporary, unknown);
`desccp` is a two-byte hexadecimal code point that represents the overall error description;
`probccp1`--`probccpx` are one to five hexadecimal code points that identify the probable cause of the error.
Note: Code point is a term used by the Systems Network Architecture Generic Alert function. It represents a two-byte hexadecimal value that describes an aspect of the failure. Details of this information can be found in the IBM Systems Network Architecture Formats Manual, order number GA27-3136.
The GACSEENT macro is used to place a Generic Alert Causes entry into an ADT. This macro builds an entry that contains information required to build the Generic Alert Causes subvectors. One or more GACSEENT macros may be present, each having the following format:
______________________________________ GACSEENT NAME=entrname, CAUSE=causecat, CAUSECP=causecp, CPTEXT=((texttype,text), . . .,(texttype,text)) ______________________________________
where:
`entrname` is the name assigned to this entry;
`causecat` is the category of the cause (e.g., install error, user error, defect, unknown);
`causecp` is a two-byte hexadecimal code point that identifies the cause of the failure;
`texttype` is a one-byte value that identifies what the `text` value represents (e.g., program check code, return code, error code);
`text` is the text data associated with the code point (see `causecp`)`
Note: Depending on the SNA Generic Alert causes code point selected, text data may be required as an inserted message into the text associated with the selected code point.
The GARACENT macro is used to place a Generic Alert Recommended Action entry into an ADT. This macro builds an entry that contains information required to build the Generic Alert Recommended Actions subfield. One or more GARACENT macros may be present, each having the following format:
______________________________________ GARACENT NAME=entrname, RECACTCT=racodept, CPTEXT=((texttype,text), . . .,(texttype,text)) ______________________________________
where:
`entrname` is the name assigned to this entry;
`racodept` is a two-byte hexadecimal code point that identifies the action required to resolve the failure;
`texttype` is a one-byte value that identifies that the `text` values represents (e.g., program check code, return code, error code);
`text` is the text data associated with the code point (see `racodept` above).
Note: Depending on the SNA Generic Alert recommended action code point selected, text data may be required as an inserted message into the text associated with the selected code point.
The EDDC process is accessed through a call and requires information that determines the data captured and the type of generic alert generated. The format of the call and a description of this information is documented below.
__________________________________________________________________________ CALL EDDC (TABLNAME=table.sub.-- name, ADSTENTS=((entry1,address), . . .,(entryx,address)), MODNAME=module.sub.-- name, DETPTID=dpid, ERRORCAT=category, SYMSTRDT=((keyword,value), . . .,(keyword,value)), ALERTDSC=alert.sub.-- dscentnm, ALERTCSE=(alert.sub.-- csentnm1, . . .,alert csentnmx), ALERTRAC=(alert.sub.-- raentnm1, . . .,alert raentnmx), __________________________________________________________________________
where:
`table-- name` is the name of the ADT to be used by the EDDC process;
`entry1` is the name of an Application Data Structure Entity entry that describes a data structure that needs to be captured and `address` is the starting address within the problem program of the data structure; (Each `entry-- ` must have an `address`.)
`address` is the storage address within the problem program where the data structure is located;
`module-- name` is the name of the module or component which detected the error (i.e., from where the detection point was "tripped");
`dpid` is a value that uniquely identifies the detection point within the module/component identified by the MODNAME keyword;
`category` is the classification of the error detected (e.g., loop, wait, incorrect data);
`keyword` is the symptom string keyword that describes the value `value`; (Table 1 provides a list of support symptom string keywords and their meaning.)
`value` is the value associated with the symptom string identifier `keyword`;
`alert-- dscentnm` is the name of the Generic Alert Descriptor entry in the ADT named by the TABNAME keyword that pertains to the error;
`alert-- csentnm--` is the name of the Generic Alert Cause entry(s) in the ADT named by the TABNAME keyword that pertains to the error; (One or more of these names may be included.)
`alert-- raentnm-- ` is the name of the Generic Alert Recommended Action entry(s) in the ADT named by the TABNAME keyword that pertains to the error. (One or more of these names may be included.)
While the invention has been particularly shown and described with reference to the preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.
Claims (15)
1. A method of detecting and diagnosing software errors in a computer software program executing on a computer processor system comprising the steps of:
defining the internal structure of the computer software program and recording said internal structure in at least one predefined table in a disk file;
placing error detection points within said computer software 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 computer software 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 activated error detection point on a macro call to said data collection and reporting routine, and the computer software program internal structure contained in said predefined table;
generating a unique software symptom string under control of the data collection and reporting routine; and
recording said software symptom string in a software program error log.
2. The method of claim 1 further comprising the steps of constructing a software error generic alert and forwarding said software error generic alert to a network monitor.
3. The method of claim 2 wherein the step of defining the internal structure of the computer software program includes coding a set of predefined macros as a separate job in parallel with the coding of said computer software program to determine the diagnostic data to be collected and the type of software error generic alert to be built.
4. The method of claim 1 further including the step of returning control back to the computer software program after said diagnostic data is collected and continuing with computer software program execution.
5. The method of claim 1 wherein said software symptom string contains a second set of keyword-value pairs which uniquely describe and identify the software error.
6. The method of claim 5 wherein the software symptom string contains the computer software program name, the computer software program version and release level, the computer software program module that detected the error, and a unique error detection point identifier.
7. The method of claim 1 wherein said predefined table contains identifying information for the corresponding computer software program, the layout and format of each data structure and control block used by the said computer software program, the category of the software error, the cause of the software error detected, and the action required to resolve the software error.
8. The method of claim 1 wherein the step of placing error detection points within said computer software program includes locating macro calls to the data collection and reporting routine at points within said computer software program that can be reached only if a software error occurs.
9. The method of claim 1 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 computer software program storage the data identified by said first set of keyword-value pairs and writing said collected data to a dump file.
10. The method of claim 9 wherein the software problem error log contains an identification of the processor and operating system executing the computer software program, the date and time the data collection and reporting routine was invoked, the name of the dump file containing said collected data, an identification of the problem computer software program, and the unique software symptom string.
11. A system for detecting and diagnosing software errors in a computer software program executing on a computer processor system comprising:
table means for generating at least one predefined table that is representative of the internal structure of said computer software program and for saving said predefined table in a disk file;
error detection means located at error detection points within said computer software program for detecting the occurrence of a software error and for interrupting execution of said program; and
data collection and reporting means, cooperative with said error detection means and said table means for collecting data from memory that represents diagnostic data for the software error and for generating a software symptom string, said data collection and reporting means being actuated by the receipt of a macro call from said error detection means, said macro call identifying selected entries in said predefined table that contain the location in memory of said diagnostic data.
12. The system of claim 11 including means cooperative with said data collection and reporting means for constructing a software error generic alert based on said identified selected entries in said predefined table and forwarding said generic alert to a network monitor.
13. The system of claim 11 wherein said data collection and reporting means generates an error record for said software error and records said error record in an error log.
14. The system of claim 11 wherein said data collection and reporting means records said diagnostic data and software symptom string in a data file.
15. The system of claim 11 wherein said data collection and reporting means returns control to said computer software program after said diagnostic data is collected.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/367,403 US5119377A (en) | 1989-06-16 | 1989-06-16 | System and method for software error early detection and data capture |
EP19900480075 EP0403415A3 (en) | 1989-06-16 | 1990-05-29 | System and method for detecting and diagnosing errors in a computer program |
JP2155575A JPH0325629A (en) | 1989-06-16 | 1990-06-15 | Method and system for detecting error in program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/367,403 US5119377A (en) | 1989-06-16 | 1989-06-16 | System and method for software error early detection and data capture |
Publications (1)
Publication Number | Publication Date |
---|---|
US5119377A true US5119377A (en) | 1992-06-02 |
Family
ID=23447026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/367,403 Expired - Fee Related US5119377A (en) | 1989-06-16 | 1989-06-16 | System and method for software error early detection and data capture |
Country Status (3)
Country | Link |
---|---|
US (1) | US5119377A (en) |
EP (1) | EP0403415A3 (en) |
JP (1) | JPH0325629A (en) |
Cited By (131)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237677A (en) * | 1989-11-08 | 1993-08-17 | Hitachi, Ltd. | Monitoring and controlling system and method for data processing system |
US5416726A (en) * | 1992-10-06 | 1995-05-16 | Microsoft Corporation | Method and system for placing a computer in a reduced power state |
US5446911A (en) * | 1989-11-16 | 1995-08-29 | Sharp Kabushiki Kaisha | Apparatus for automatically preparing a flowchart by analyzing a source program and a list of jump commands |
US5446878A (en) * | 1990-02-26 | 1995-08-29 | Digital Equipment Corporation | Method for selectively enabling subset of embedded event-making instructions and selecting types and items of event-based data to be collected per enabled instruction |
US5463768A (en) * | 1994-03-17 | 1995-10-31 | General Electric Company | Method and system for analyzing error logs for diagnostics |
US5513316A (en) * | 1990-09-07 | 1996-04-30 | Computervision Corporation | Method and apparatus for exercising an integrated software system |
US5528759A (en) * | 1990-10-31 | 1996-06-18 | International Business Machines Corporation | Method and apparatus for correlating network management report messages |
WO1996042046A1 (en) * | 1995-06-09 | 1996-12-27 | Canon Information Systems, Inc. | Network board which responds to status changes of its installed peripheral by generating a testpage |
WO1996042045A1 (en) * | 1995-06-09 | 1996-12-27 | Canon Information Systems, Inc. | Outputting formatted debug information from a network device |
US5594861A (en) * | 1995-08-18 | 1997-01-14 | Telefonaktiebolaget L M Ericsson | Method and apparatus for handling processing errors in telecommunications exchanges |
US5615331A (en) * | 1994-06-23 | 1997-03-25 | Phoenix Technologies Ltd. | System and method for debugging a computing system |
US5673387A (en) * | 1994-05-16 | 1997-09-30 | Lucent Technologies Inc. | System and method for selecting test units to be re-run in software regression testing |
US5708774A (en) * | 1996-07-23 | 1998-01-13 | International Business Machines Corporation | Automated testing of software application interfaces, object methods and commands |
US5740354A (en) * | 1995-11-27 | 1998-04-14 | Microsoft Corporation | Method and system for associating related errors in a computer system |
US5764886A (en) * | 1991-06-24 | 1998-06-09 | Compaq Computer Corporation | In-band/out-of-band alert delivery system |
US5790777A (en) * | 1995-04-27 | 1998-08-04 | Mitsubishi Denki Kabushiki Kaisha | Computer system analysis device |
US5819024A (en) * | 1995-07-11 | 1998-10-06 | Hitachi, Ltd. | Fault analysis system |
US5854924A (en) * | 1996-08-08 | 1998-12-29 | Globetrotter Software, Inc. | Static debugging tool and method |
US5872909A (en) * | 1995-01-24 | 1999-02-16 | Wind River Systems, Inc. | Logic analyzer for software |
US5892959A (en) * | 1990-06-01 | 1999-04-06 | Vadem | Computer activity monitor providing idle thread and other event sensitive clock and power control |
US6000046A (en) * | 1997-01-09 | 1999-12-07 | Hewlett-Packard Company | Common error handling system |
US5999933A (en) * | 1995-12-14 | 1999-12-07 | Compaq Computer Corporation | Process and apparatus for collecting a data structure of a memory dump into a logical table |
US6047345A (en) * | 1992-05-15 | 2000-04-04 | Hitachi, Ltd. | Method for controlling a bus to progress transfer cycles without inserting a cycle for acknowledgment |
US6052758A (en) * | 1997-12-22 | 2000-04-18 | International Business Machines Corporation | Interface error detection and isolation in a direct access storage device DASD system |
US6067407A (en) * | 1995-06-30 | 2000-05-23 | Canon Information Systems, Inc. | Remote diagnosis of network device over a local area network |
WO2000054385A1 (en) * | 1999-03-10 | 2000-09-14 | Preview Systems, Inc. | User transparent software malfunction detection and reporting |
WO2000055953A1 (en) * | 1999-03-15 | 2000-09-21 | Smartsan Systems, Inc. | System and method of event management and early fault detection |
US6182244B1 (en) * | 1997-09-10 | 2001-01-30 | International Business Machines Corporation | System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active |
US6182243B1 (en) * | 1992-09-11 | 2001-01-30 | International Business Machines Corporation | Selective data capture for software exception conditions |
US6202174B1 (en) * | 1996-09-16 | 2001-03-13 | Advanced Micro Devices Inc | Method for identifying and correcting errors in a central processing unit |
US6275855B1 (en) * | 1997-11-02 | 2001-08-14 | R. Brent Johnson | System, method and article of manufacture to enhance computerized alert system information awareness and facilitate real-time intervention services |
US6295613B1 (en) * | 1998-04-28 | 2001-09-25 | International Business Machines Corporation | Debug watch mechanism and method for debugging a computer program |
US6321279B1 (en) * | 1998-09-14 | 2001-11-20 | Compaq Computer Corporation | System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system |
US6345370B1 (en) | 1997-07-15 | 2002-02-05 | Samsung Electronics Co., Ltd. | Method for debugging error in a computer system |
US20020062454A1 (en) * | 2000-09-27 | 2002-05-23 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
US6401217B1 (en) * | 1997-07-22 | 2002-06-04 | Siemens Aktiengesellschaft | Method for error recognition in a processor system |
US20020166083A1 (en) * | 2001-05-03 | 2002-11-07 | International Business Machines Corporation | Conditional hardware scan dump data capture |
US20030018808A1 (en) * | 2001-03-26 | 2003-01-23 | Lev Brouk | System and method for mapping of services |
US20030037291A1 (en) * | 2001-08-17 | 2003-02-20 | International Business Machines Corporation | Method, system and program for handling errors occurring in function calls |
US20030041178A1 (en) * | 2001-03-26 | 2003-02-27 | Lev Brouk | System and method for routing messages between applications |
US20030053459A1 (en) * | 2001-03-26 | 2003-03-20 | Lev Brouk | System and method for invocation of services |
US6557122B1 (en) * | 1998-04-07 | 2003-04-29 | Hitachi, Ltd. | Notification system for informing a network user of a problem in the network |
US6560772B1 (en) * | 1999-10-15 | 2003-05-06 | International Business Machines Corporation | Method, system, and program for accessing data in different environments |
US20030159133A1 (en) * | 2001-10-26 | 2003-08-21 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
US6618823B1 (en) | 2000-08-15 | 2003-09-09 | Storage Technology Corporation | Method and system for automatically gathering information from different types of devices connected in a network when a device fails |
US20030196126A1 (en) * | 2002-04-11 | 2003-10-16 | Fung Henry T. | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
US20040167987A1 (en) * | 2001-03-30 | 2004-08-26 | Grand Central Communications, Inc. | Apparatus and methods for provisioning services |
US20040186891A1 (en) * | 2001-03-30 | 2004-09-23 | Grand Central Communications, Inc. | Apparatus and methods for correlating messages sent between services |
US20040220774A1 (en) * | 1999-12-29 | 2004-11-04 | Anant Agarwal | Early warning mechanism for enhancing enterprise availability |
US6823478B1 (en) * | 2000-09-12 | 2004-11-23 | Microsoft Corporation | System and method for automating the testing of software processing environment changes |
US20040249914A1 (en) * | 2003-05-21 | 2004-12-09 | Flocken Philip A. | Computer service using automated local diagnostic data collection and automated remote analysis |
US20040255191A1 (en) * | 2003-06-16 | 2004-12-16 | International Business Machines Corporation | Automated diagnostic service |
US20050015668A1 (en) * | 2003-07-01 | 2005-01-20 | International Business Machines Corporation | Autonomic program error detection and correction |
US20050080914A1 (en) * | 2003-10-14 | 2005-04-14 | Grand Central Communications, Inc., A Delaware Corporation | Policy management in an interoperability network |
US20050086297A1 (en) * | 2003-10-16 | 2005-04-21 | Grand Central Communications, Inc. | Managing virtual business instances within a computer network |
US20050120209A1 (en) * | 2002-04-30 | 2005-06-02 | Ji-Hun Kwon | Method and system for authenticating software |
US20050138210A1 (en) * | 2003-12-19 | 2005-06-23 | Grand Central Communications, Inc. | Apparatus and methods for mediating messages |
US6915342B1 (en) * | 2000-02-04 | 2005-07-05 | Ricoh Company Limited | Method and system for maintaining the business office appliance through log files |
US20050228863A1 (en) * | 2004-04-07 | 2005-10-13 | Grand Central Communications, Inc. | Techniques for providing interoperability as a service |
US20050234928A1 (en) * | 2004-03-23 | 2005-10-20 | Grand Central Communications, Inc. | Synchronous interface to asynchronous processes |
US20050240826A1 (en) * | 2004-04-08 | 2005-10-27 | International Business Machines Corporation | Method, data processing system, and computer program product for collecting first failure data capture information |
US20060005080A1 (en) * | 2004-07-02 | 2006-01-05 | Seagate Technology Llc | Event logging and analysis in a software system |
US20060031461A1 (en) * | 2004-05-14 | 2006-02-09 | Mathur Harish C | Deferred method of sending information |
US20060064527A1 (en) * | 2004-09-21 | 2006-03-23 | Fisher James A | Adaptive message delivery system |
US20060168165A1 (en) * | 2005-01-22 | 2006-07-27 | Boss Gregory J | Provisional application management with automated acceptance tests and decision criteria |
US20060163633A1 (en) * | 2004-09-01 | 2006-07-27 | Cem Basceri | Dielectric relaxation memory |
US20060242286A1 (en) * | 2003-05-21 | 2006-10-26 | Joshua Hawkins | Systems and methods for controlling error reporting and resolution |
US20060248360A1 (en) * | 2001-05-18 | 2006-11-02 | Fung Henry T | Multi-server and multi-CPU power management system and method |
US20070061628A1 (en) * | 2005-09-09 | 2007-03-15 | International Business Machines Corporation | System and method for examining remote systems and gathering debug data in real time |
US20070101173A1 (en) * | 2000-09-27 | 2007-05-03 | Fung Henry T | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US7228441B2 (en) | 2000-09-27 | 2007-06-05 | Huron Ip Llc | Multi-server and multi-CPU power management system and method |
US20070168980A1 (en) * | 2006-01-06 | 2007-07-19 | Reed David C | Apparatus and method to debug a software program |
US20070245165A1 (en) * | 2000-09-27 | 2007-10-18 | Amphus, Inc. | System and method for activity or event based dynamic energy conserving server reconfiguration |
US20080109792A1 (en) * | 2000-09-16 | 2008-05-08 | International Business Machines Corporation | Tracing the Execution Path of a Computer Program |
US20080215931A1 (en) * | 2005-07-28 | 2008-09-04 | Gregory Jensen Boss | Systems and Methods for Embedded Application Test Suites |
US20080276129A1 (en) * | 2007-05-02 | 2008-11-06 | International Business Machines Corporation | Software tracing |
US20090006907A1 (en) * | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Method and apparatus for identification of program check errors indicating code with high potential for storage overlay |
US20090063907A1 (en) * | 2007-08-29 | 2009-03-05 | Matsushita Electric Industrial Co., Ltd. | Debugging system, debugging apparatus and method |
US20090138854A1 (en) * | 2007-11-22 | 2009-05-28 | Suresh Mani | Software error detection method, software module, database and system |
USRE40866E1 (en) | 2000-09-27 | 2009-08-04 | Huron Ip Llc | System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment |
US20090222492A1 (en) * | 2008-02-28 | 2009-09-03 | Mtsubishi Electric Corporation | Logging Device and Recording Medium |
US20090299951A1 (en) * | 2008-05-30 | 2009-12-03 | Fujitsu Limited | Failure-handling procedure knowledge forming apparatus and method thereof |
US20090313506A1 (en) * | 2008-06-12 | 2009-12-17 | Microsoft Corporation | Test Result Aggregation and Analysis Using Text Expressions |
US7721328B2 (en) | 2004-10-01 | 2010-05-18 | Salesforce.Com Inc. | Application identity design |
US7725605B2 (en) | 2004-08-06 | 2010-05-25 | Salesforce.Com, Inc. | Providing on-demand access to services in a wide area network |
US20100269091A1 (en) * | 2009-04-20 | 2010-10-21 | International Business Machines Corporation | Jvm exception debugging |
WO2010145365A1 (en) * | 2009-10-29 | 2010-12-23 | 中兴通讯股份有限公司 | Method, system and server for error handling in mobile terminal |
US20120272102A1 (en) * | 2000-12-06 | 2012-10-25 | International Business Machines Corporation | Redirecting Data Generated by Network Devices |
US8364813B2 (en) | 2010-11-02 | 2013-01-29 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8386602B2 (en) | 2010-11-02 | 2013-02-26 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system |
US8495661B2 (en) | 2010-11-02 | 2013-07-23 | International Business Machines Corporation | Relevant alert delivery with event and alert suppression in a distributed processing system |
TWI414937B (en) * | 2008-10-03 | 2013-11-11 | Fujitsu Ltd | Computer apparatus and processor diagnostic method |
US8621277B2 (en) | 2010-12-06 | 2013-12-31 | International Business Machines Corporation | Dynamic administration of component event reporting in a distributed processing system |
US8639980B2 (en) | 2011-05-26 | 2014-01-28 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8660995B2 (en) | 2011-06-22 | 2014-02-25 | International Business Machines Corporation | Flexible event data content management for relevant event and alert analysis within a distributed processing system |
US8676883B2 (en) | 2011-05-27 | 2014-03-18 | International Business Machines Corporation | Event management in a distributed processing system |
US8689050B2 (en) | 2011-06-22 | 2014-04-01 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US20140132782A1 (en) * | 1998-03-24 | 2014-05-15 | Canon Kabushiki Kaisha | System to manage digital camera images |
US8730816B2 (en) | 2010-12-07 | 2014-05-20 | International Business Machines Corporation | Dynamic administration of event pools for relevant event and alert analysis during event storms |
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
US8805999B2 (en) | 2010-12-07 | 2014-08-12 | International Business Machines Corporation | Administering event reporting rules in a distributed processing system |
US8863148B1 (en) * | 2007-01-09 | 2014-10-14 | Marvell International Ltd. | Small debug print |
US8868984B2 (en) | 2010-12-07 | 2014-10-21 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system with event listeners and alert listeners |
US8880944B2 (en) | 2011-06-22 | 2014-11-04 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US8887175B2 (en) | 2011-10-18 | 2014-11-11 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8904412B2 (en) * | 2012-09-26 | 2014-12-02 | International Business Machines Corporation | Dynamic performance data collection in large computer servers |
US8943366B2 (en) | 2012-08-09 | 2015-01-27 | International Business Machines Corporation | Administering checkpoints for incident analysis |
US8954811B2 (en) | 2012-08-06 | 2015-02-10 | International Business Machines Corporation | Administering incident pools for incident analysis |
US9086968B2 (en) | 2013-09-11 | 2015-07-21 | International Business Machines Corporation | Checkpointing for delayed alert creation |
US9170860B2 (en) | 2013-07-26 | 2015-10-27 | International Business Machines Corporation | Parallel incident processing |
US9178936B2 (en) | 2011-10-18 | 2015-11-03 | International Business Machines Corporation | Selected alert delivery in a distributed processing system |
US9201756B2 (en) | 2011-05-27 | 2015-12-01 | International Business Machines Corporation | Administering event pools for relevant event analysis in a distributed processing system |
CN105159831A (en) * | 2015-08-31 | 2015-12-16 | 浪潮集团有限公司 | Method for automatically monitoring quality of software code |
US9246865B2 (en) | 2011-10-18 | 2016-01-26 | International Business Machines Corporation | Prioritized alert delivery in a distributed processing system |
US9256482B2 (en) | 2013-08-23 | 2016-02-09 | International Business Machines Corporation | Determining whether to send an alert in a distributed processing system |
US9286143B2 (en) | 2011-06-22 | 2016-03-15 | International Business Machines Corporation | Flexible event data content management for relevant event and alert analysis within a distributed processing system |
US9348687B2 (en) | 2014-01-07 | 2016-05-24 | International Business Machines Corporation | Determining a number of unique incidents in a plurality of incidents for incident processing in a distributed processing system |
US9361184B2 (en) | 2013-05-09 | 2016-06-07 | International Business Machines Corporation | Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system |
US9471411B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Monitoring and capturing early diagnostic data |
US9602337B2 (en) | 2013-09-11 | 2017-03-21 | International Business Machines Corporation | Event and alert analysis in a distributed processing system |
US9645712B2 (en) | 2004-10-01 | 2017-05-09 | Grand Central Communications, Inc. | Multiple stakeholders for a single business process |
US9658902B2 (en) | 2013-08-22 | 2017-05-23 | Globalfoundries Inc. | Adaptive clock throttling for event processing |
US9948644B2 (en) | 2001-03-26 | 2018-04-17 | Salesforce.Com, Inc. | Routing messages between applications |
US9946592B2 (en) | 2016-02-12 | 2018-04-17 | International Business Machines Corporation | Dump data collection management for a storage area network |
US10152366B2 (en) * | 2013-09-24 | 2018-12-11 | Nec Corporation | Log analysis system, fault cause analysis system, log analysis method, and recording medium which stores program |
US20190318098A1 (en) * | 2018-04-12 | 2019-10-17 | United States Of America, As Represented By The Secretary Of The Navy | Source Code Diagnostic Instrument |
US10628280B1 (en) | 2018-02-06 | 2020-04-21 | Northrop Grumman Systems Corporation | Event logger |
US11016862B2 (en) * | 2017-05-23 | 2021-05-25 | International Business Machines Corporation | Error-initiated mirror redrive to collect diagnostic information |
US11061809B2 (en) * | 2019-05-29 | 2021-07-13 | Red Hat, Inc. | Software debugging system with improved test execution and log file tracking |
US11580255B2 (en) | 2019-11-11 | 2023-02-14 | Bank Of America Corporation | Security tool for n-tier platforms |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
US6804814B1 (en) | 1999-12-29 | 2004-10-12 | Veritas Operating Corporation | Method for simulating back program execution from a traceback sequence |
US6748584B1 (en) | 1999-12-29 | 2004-06-08 | Veritas Operating Corporation | Method for determining the degree to which changed code has been exercised |
EP1237084A1 (en) * | 2001-01-23 | 2002-09-04 | Koninklijke Philips Electronics N.V. | Method for reporting errors during program execution in an electronic terminal |
EP1274013A1 (en) * | 2001-07-03 | 2003-01-08 | Hewlett-Packard Company | Process monitor module |
US6910159B2 (en) * | 2002-02-20 | 2005-06-21 | Microsoft Corporation | System and method for gathering and automatically processing user and debug data for mobile devices |
CN101398781B (en) * | 2007-09-30 | 2010-11-10 | 英业达股份有限公司 | System and method for rapidly diagnosing system software defect |
CN102662827B (en) * | 2010-04-13 | 2015-02-04 | 张溟 | Software detection method |
CN102646068B (en) * | 2010-04-13 | 2015-01-07 | 江苏理工学院 | Software detecting method of software detector |
CN112407326B (en) * | 2020-11-13 | 2022-07-12 | 峰飞航空科技(昆山)有限公司 | Unmanned aerial vehicle system fault diagnosis method and device, electronic equipment and storage medium |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551659A (en) * | 1969-05-05 | 1970-12-29 | Charles O Forsythe | Method for debugging computer programs |
US3664569A (en) * | 1970-07-09 | 1972-05-23 | H 2 O Filter Corp The | Packaging structure |
US3937938A (en) * | 1974-06-19 | 1976-02-10 | Action Communication Systems, Inc. | Method and apparatus for assisting in debugging of a digital computer program |
US4514846A (en) * | 1982-09-21 | 1985-04-30 | Xerox Corporation | Control fault detection for machine recovery and diagnostics prior to malfunction |
US4696003A (en) * | 1986-03-10 | 1987-09-22 | International Business Machines Corporation | System for testing interactive software |
US4703482A (en) * | 1986-02-19 | 1987-10-27 | Hydro-Quebec | Universal apparatus for detecting faults in microprocessor systems |
US4755997A (en) * | 1985-10-03 | 1988-07-05 | Mitsubishi Denki Kabushiki Kaisha | Computer program debugging system |
US4802165A (en) * | 1986-10-08 | 1989-01-31 | Enteleki, Inc. | Method and apparatus of debugging computer programs |
US4819232A (en) * | 1985-12-17 | 1989-04-04 | Bbc Brown, Boveri & Company, Limited | Fault-tolerant multiprocessor arrangement |
US4965772A (en) * | 1987-06-15 | 1990-10-23 | International Business Machines Corporation | Method and apparatus for communication network alert message construction |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4462077A (en) * | 1982-06-24 | 1984-07-24 | Bell Telephone Laboratories, Incorporated | Trace facility for use in multiprocessing environment |
-
1989
- 1989-06-16 US US07/367,403 patent/US5119377A/en not_active Expired - Fee Related
-
1990
- 1990-05-29 EP EP19900480075 patent/EP0403415A3/en not_active Withdrawn
- 1990-06-15 JP JP2155575A patent/JPH0325629A/en active Granted
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551659A (en) * | 1969-05-05 | 1970-12-29 | Charles O Forsythe | Method for debugging computer programs |
US3664569A (en) * | 1970-07-09 | 1972-05-23 | H 2 O Filter Corp The | Packaging structure |
US3937938A (en) * | 1974-06-19 | 1976-02-10 | Action Communication Systems, Inc. | Method and apparatus for assisting in debugging of a digital computer program |
US4514846A (en) * | 1982-09-21 | 1985-04-30 | Xerox Corporation | Control fault detection for machine recovery and diagnostics prior to malfunction |
US4755997A (en) * | 1985-10-03 | 1988-07-05 | Mitsubishi Denki Kabushiki Kaisha | Computer program debugging system |
US4819232A (en) * | 1985-12-17 | 1989-04-04 | Bbc Brown, Boveri & Company, Limited | Fault-tolerant multiprocessor arrangement |
US4703482A (en) * | 1986-02-19 | 1987-10-27 | Hydro-Quebec | Universal apparatus for detecting faults in microprocessor systems |
US4696003A (en) * | 1986-03-10 | 1987-09-22 | International Business Machines Corporation | System for testing interactive software |
US4802165A (en) * | 1986-10-08 | 1989-01-31 | Enteleki, Inc. | Method and apparatus of debugging computer programs |
US4965772A (en) * | 1987-06-15 | 1990-10-23 | International Business Machines Corporation | Method and apparatus for communication network alert message construction |
Cited By (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237677A (en) * | 1989-11-08 | 1993-08-17 | Hitachi, Ltd. | Monitoring and controlling system and method for data processing system |
US5446911A (en) * | 1989-11-16 | 1995-08-29 | Sharp Kabushiki Kaisha | Apparatus for automatically preparing a flowchart by analyzing a source program and a list of jump commands |
US5446878A (en) * | 1990-02-26 | 1995-08-29 | Digital Equipment Corporation | Method for selectively enabling subset of embedded event-making instructions and selecting types and items of event-based data to be collected per enabled instruction |
US6584571B1 (en) | 1990-06-01 | 2003-06-24 | St. Clair Intellectual Property Consultants, Inc. | System and method of computer operating mode clock control for power consumption reduction |
US5892959A (en) * | 1990-06-01 | 1999-04-06 | Vadem | Computer activity monitor providing idle thread and other event sensitive clock and power control |
US6079025A (en) * | 1990-06-01 | 2000-06-20 | Vadem | System and method of computer operating mode control for power consumption reduction |
US20020004913A1 (en) * | 1990-06-01 | 2002-01-10 | Amphus, Inc. | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US7134011B2 (en) | 1990-06-01 | 2006-11-07 | Huron Ip Llc | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US20030188208A1 (en) * | 1990-06-01 | 2003-10-02 | Amphus, Inc. | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US6859882B2 (en) | 1990-06-01 | 2005-02-22 | Amphus, Inc. | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US20030200473A1 (en) * | 1990-06-01 | 2003-10-23 | Amphus, Inc. | System and method for activity or event based dynamic energy conserving server reconfiguration |
US5513316A (en) * | 1990-09-07 | 1996-04-30 | Computervision Corporation | Method and apparatus for exercising an integrated software system |
US5528759A (en) * | 1990-10-31 | 1996-06-18 | International Business Machines Corporation | Method and apparatus for correlating network management report messages |
US5764886A (en) * | 1991-06-24 | 1998-06-09 | Compaq Computer Corporation | In-band/out-of-band alert delivery system |
US6473795B1 (en) | 1991-06-24 | 2002-10-29 | Compaq Computer Corporation | In-band/out-of-band alert delivery system |
US6047345A (en) * | 1992-05-15 | 2000-04-04 | Hitachi, Ltd. | Method for controlling a bus to progress transfer cycles without inserting a cycle for acknowledgment |
US6182243B1 (en) * | 1992-09-11 | 2001-01-30 | International Business Machines Corporation | Selective data capture for software exception conditions |
US5544082A (en) * | 1992-10-06 | 1996-08-06 | Microsoft Corporation | Method and system for placing a computer in a reduced power state |
US5416726A (en) * | 1992-10-06 | 1995-05-16 | Microsoft Corporation | Method and system for placing a computer in a reduced power state |
US5463768A (en) * | 1994-03-17 | 1995-10-31 | General Electric Company | Method and system for analyzing error logs for diagnostics |
US5673387A (en) * | 1994-05-16 | 1997-09-30 | Lucent Technologies Inc. | System and method for selecting test units to be re-run in software regression testing |
US5615331A (en) * | 1994-06-23 | 1997-03-25 | Phoenix Technologies Ltd. | System and method for debugging a computing system |
US5872909A (en) * | 1995-01-24 | 1999-02-16 | Wind River Systems, Inc. | Logic analyzer for software |
US5790777A (en) * | 1995-04-27 | 1998-08-04 | Mitsubishi Denki Kabushiki Kaisha | Computer system analysis device |
US5828864A (en) * | 1995-06-09 | 1998-10-27 | Canon Information Systems, Inc. | Network board which responds to status changes of an installed peripheral by generating a testpage |
WO1996042045A1 (en) * | 1995-06-09 | 1996-12-27 | Canon Information Systems, Inc. | Outputting formatted debug information from a network device |
WO1996042046A1 (en) * | 1995-06-09 | 1996-12-27 | Canon Information Systems, Inc. | Network board which responds to status changes of its installed peripheral by generating a testpage |
US5828863A (en) * | 1995-06-09 | 1998-10-27 | Canon Information Systems, Inc. | Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer |
US6067407A (en) * | 1995-06-30 | 2000-05-23 | Canon Information Systems, Inc. | Remote diagnosis of network device over a local area network |
US5819024A (en) * | 1995-07-11 | 1998-10-06 | Hitachi, Ltd. | Fault analysis system |
US5594861A (en) * | 1995-08-18 | 1997-01-14 | Telefonaktiebolaget L M Ericsson | Method and apparatus for handling processing errors in telecommunications exchanges |
US5740354A (en) * | 1995-11-27 | 1998-04-14 | Microsoft Corporation | Method and system for associating related errors in a computer system |
US5999933A (en) * | 1995-12-14 | 1999-12-07 | Compaq Computer Corporation | Process and apparatus for collecting a data structure of a memory dump into a logical table |
US5708774A (en) * | 1996-07-23 | 1998-01-13 | International Business Machines Corporation | Automated testing of software application interfaces, object methods and commands |
US5854924A (en) * | 1996-08-08 | 1998-12-29 | Globetrotter Software, Inc. | Static debugging tool and method |
US6484274B1 (en) | 1996-09-16 | 2002-11-19 | Advanced Micro Devices, Inc. | Method for identifying and correcting error in a central processing unit |
US6202174B1 (en) * | 1996-09-16 | 2001-03-13 | Advanced Micro Devices Inc | Method for identifying and correcting errors in a central processing unit |
US6000046A (en) * | 1997-01-09 | 1999-12-07 | Hewlett-Packard Company | Common error handling system |
US6345370B1 (en) | 1997-07-15 | 2002-02-05 | Samsung Electronics Co., Ltd. | Method for debugging error in a computer system |
US6401217B1 (en) * | 1997-07-22 | 2002-06-04 | Siemens Aktiengesellschaft | Method for error recognition in a processor system |
US6182244B1 (en) * | 1997-09-10 | 2001-01-30 | International Business Machines Corporation | System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active |
US6275855B1 (en) * | 1997-11-02 | 2001-08-14 | R. Brent Johnson | System, method and article of manufacture to enhance computerized alert system information awareness and facilitate real-time intervention services |
US6052758A (en) * | 1997-12-22 | 2000-04-18 | International Business Machines Corporation | Interface error detection and isolation in a direct access storage device DASD system |
US20140132782A1 (en) * | 1998-03-24 | 2014-05-15 | Canon Kabushiki Kaisha | System to manage digital camera images |
US6557122B1 (en) * | 1998-04-07 | 2003-04-29 | Hitachi, Ltd. | Notification system for informing a network user of a problem in the network |
US6295613B1 (en) * | 1998-04-28 | 2001-09-25 | International Business Machines Corporation | Debug watch mechanism and method for debugging a computer program |
US6321279B1 (en) * | 1998-09-14 | 2001-11-20 | Compaq Computer Corporation | System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system |
WO2000054385A1 (en) * | 1999-03-10 | 2000-09-14 | Preview Systems, Inc. | User transparent software malfunction detection and reporting |
WO2000055953A1 (en) * | 1999-03-15 | 2000-09-21 | Smartsan Systems, Inc. | System and method of event management and early fault detection |
US6560772B1 (en) * | 1999-10-15 | 2003-05-06 | International Business Machines Corporation | Method, system, and program for accessing data in different environments |
US7823134B2 (en) * | 1999-12-29 | 2010-10-26 | Symantec Operating Corporation | Early warning mechanism for enhancing enterprise availability |
US20040220774A1 (en) * | 1999-12-29 | 2004-11-04 | Anant Agarwal | Early warning mechanism for enhancing enterprise availability |
US20050165929A1 (en) * | 2000-02-04 | 2005-07-28 | Ricoh Company, Ltd. | Method and system for maintaining a business office appliance through log files |
US6915342B1 (en) * | 2000-02-04 | 2005-07-05 | Ricoh Company Limited | Method and system for maintaining the business office appliance through log files |
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
US6618823B1 (en) | 2000-08-15 | 2003-09-09 | Storage Technology Corporation | Method and system for automatically gathering information from different types of devices connected in a network when a device fails |
US6823478B1 (en) * | 2000-09-12 | 2004-11-23 | Microsoft Corporation | System and method for automating the testing of software processing environment changes |
US20080109792A1 (en) * | 2000-09-16 | 2008-05-08 | International Business Machines Corporation | Tracing the Execution Path of a Computer Program |
US9348731B2 (en) * | 2000-09-16 | 2016-05-24 | International Business Machines Corporation | Tracing the execution path of a computer program |
US7558976B2 (en) | 2000-09-27 | 2009-07-07 | Huron Ip Llc | System, method, architecture, and computer program product for dynamic power management in a computer system |
US20070101173A1 (en) * | 2000-09-27 | 2007-05-03 | Fung Henry T | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US7484111B2 (en) | 2000-09-27 | 2009-01-27 | Huron Ip Llc | Power on demand and workload management system and method |
US20060248325A1 (en) * | 2000-09-27 | 2006-11-02 | Fung Henry T | Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices |
US8700923B2 (en) | 2000-09-27 | 2014-04-15 | Huron Ip Llc | Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices |
US7512822B2 (en) | 2000-09-27 | 2009-03-31 | Huron Ip Llc | System and method for activity or event based dynamic energy conserving server reconfiguration |
US20070245165A1 (en) * | 2000-09-27 | 2007-10-18 | Amphus, Inc. | System and method for activity or event based dynamic energy conserving server reconfiguration |
US7272735B2 (en) | 2000-09-27 | 2007-09-18 | Huron Ip Llc | Dynamic power and workload management for multi-server system |
US8074092B2 (en) | 2000-09-27 | 2011-12-06 | Huron Ip Llc | System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment |
US7533283B2 (en) | 2000-09-27 | 2009-05-12 | Huron Ip Llc | Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices |
US7562239B2 (en) | 2000-09-27 | 2009-07-14 | Huron Ip Llc | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US7228441B2 (en) | 2000-09-27 | 2007-06-05 | Huron Ip Llc | Multi-server and multi-CPU power management system and method |
US7822967B2 (en) | 2000-09-27 | 2010-10-26 | Huron Ip Llc | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US20060248361A1 (en) * | 2000-09-27 | 2006-11-02 | Fung Henry T | Dynamic power and workload management for multi-server system |
US7552350B2 (en) | 2000-09-27 | 2009-06-23 | Huron Ip Llc | System and method for activity or event base dynamic energy conserving server reconfiguration |
US20060265608A1 (en) * | 2000-09-27 | 2006-11-23 | Fung Henry T | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US20060259797A1 (en) * | 2000-09-27 | 2006-11-16 | Fung Henry T | System, method, architecture, and computer program product for dynamic power management in a computer system |
US20060253717A1 (en) * | 2000-09-27 | 2006-11-09 | Fung Henry T | System and method for activity or event based dynamic energy conserving server reconfiguration |
US20090235104A1 (en) * | 2000-09-27 | 2009-09-17 | Fung Henry T | System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment |
US20020062454A1 (en) * | 2000-09-27 | 2002-05-23 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
US7032119B2 (en) | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
US20060248359A1 (en) * | 2000-09-27 | 2006-11-02 | Fung Henry T | Power on demand and workload management system and method |
USRE40866E1 (en) | 2000-09-27 | 2009-08-04 | Huron Ip Llc | System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment |
US8769342B2 (en) * | 2000-12-06 | 2014-07-01 | International Business Machines Corporation | Redirecting data generated by network devices |
US20120272102A1 (en) * | 2000-12-06 | 2012-10-25 | International Business Machines Corporation | Redirecting Data Generated by Network Devices |
US7788399B2 (en) | 2001-03-26 | 2010-08-31 | Salesforce.Com, Inc. | System and method for mapping of services |
US9948644B2 (en) | 2001-03-26 | 2018-04-17 | Salesforce.Com, Inc. | Routing messages between applications |
US8639843B2 (en) | 2001-03-26 | 2014-01-28 | Salesforce.Com, Inc. | System and method for routing messages between applications |
US7516191B2 (en) | 2001-03-26 | 2009-04-07 | Salesforce.Com, Inc. | System and method for invocation of services |
US20030053459A1 (en) * | 2001-03-26 | 2003-03-20 | Lev Brouk | System and method for invocation of services |
US7689711B2 (en) | 2001-03-26 | 2010-03-30 | Salesforce.Com, Inc. | System and method for routing messages between applications |
US20030041178A1 (en) * | 2001-03-26 | 2003-02-27 | Lev Brouk | System and method for routing messages between applications |
US9491126B2 (en) | 2001-03-26 | 2016-11-08 | Salesforce.Com, Inc. | Routing messages between applications |
US20030018808A1 (en) * | 2001-03-26 | 2003-01-23 | Lev Brouk | System and method for mapping of services |
US9588828B2 (en) | 2001-03-26 | 2017-03-07 | Salesforce.Com, Inc. | System and method for routing messages between applications |
US9467405B2 (en) | 2001-03-26 | 2016-10-11 | Salesforce.Com, Inc. | Routing messages between applications |
US9037726B2 (en) | 2001-03-30 | 2015-05-19 | Salesforce.Com, Inc. | Apparatus and methods for managing messages sent between services |
US20040167987A1 (en) * | 2001-03-30 | 2004-08-26 | Grand Central Communications, Inc. | Apparatus and methods for provisioning services |
US7249195B2 (en) * | 2001-03-30 | 2007-07-24 | Minor Ventures, Llc | Apparatus and methods for correlating messages sent between services |
US20040186891A1 (en) * | 2001-03-30 | 2004-09-23 | Grand Central Communications, Inc. | Apparatus and methods for correlating messages sent between services |
US7305454B2 (en) | 2001-03-30 | 2007-12-04 | Minor Ventures, Llc. | Apparatus and methods for provisioning services |
US11070626B2 (en) | 2001-03-30 | 2021-07-20 | Salesforce.Com, Inc. | Managing messages sent between services |
US20080016242A1 (en) * | 2001-03-30 | 2008-01-17 | Minor Ventures, Llc | Apparatus and methods for managing messages sent between services |
US7721125B2 (en) | 2001-04-11 | 2010-05-18 | Huron Ip, Llc | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US20060259796A1 (en) * | 2001-04-11 | 2006-11-16 | Fung Henry T | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US20020166083A1 (en) * | 2001-05-03 | 2002-11-07 | International Business Machines Corporation | Conditional hardware scan dump data capture |
US6880113B2 (en) * | 2001-05-03 | 2005-04-12 | International Business Machines Corporation | Conditional hardware scan dump data capture |
US20060248360A1 (en) * | 2001-05-18 | 2006-11-02 | Fung Henry T | Multi-server and multi-CPU power management system and method |
US6973643B2 (en) * | 2001-08-17 | 2005-12-06 | International Business Machines Corporation | Method, system and program for handling errors occurring in function calls |
US20030037291A1 (en) * | 2001-08-17 | 2003-02-20 | International Business Machines Corporation | Method, system and program for handling errors occurring in function calls |
US7120901B2 (en) * | 2001-10-26 | 2006-10-10 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
US20030159133A1 (en) * | 2001-10-26 | 2003-08-21 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
US20030196126A1 (en) * | 2002-04-11 | 2003-10-16 | Fung Henry T. | System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment |
US20050120209A1 (en) * | 2002-04-30 | 2005-06-02 | Ji-Hun Kwon | Method and system for authenticating software |
US7707409B2 (en) * | 2002-04-30 | 2010-04-27 | Kt Corporation | Method and system for authenticating software |
US9069666B2 (en) | 2003-05-21 | 2015-06-30 | Hewlett-Packard Development Company, L.P. | Systems and methods for controlling error reporting and resolution |
US20040249914A1 (en) * | 2003-05-21 | 2004-12-09 | Flocken Philip A. | Computer service using automated local diagnostic data collection and automated remote analysis |
US20060242286A1 (en) * | 2003-05-21 | 2006-10-26 | Joshua Hawkins | Systems and methods for controlling error reporting and resolution |
US7350112B2 (en) * | 2003-06-16 | 2008-03-25 | International Business Machines Corporation | Automated diagnostic service |
US20040255191A1 (en) * | 2003-06-16 | 2004-12-16 | International Business Machines Corporation | Automated diagnostic service |
US7865781B2 (en) | 2003-06-16 | 2011-01-04 | International Business Machines Corporation | Automated diagnostic service |
US20050015668A1 (en) * | 2003-07-01 | 2005-01-20 | International Business Machines Corporation | Autonomic program error detection and correction |
US7689872B2 (en) * | 2003-07-01 | 2010-03-30 | International Business Machines Corporation | Autonomic program error detection and correction |
US8453196B2 (en) | 2003-10-14 | 2013-05-28 | Salesforce.Com, Inc. | Policy management in an interoperability network |
US20050080914A1 (en) * | 2003-10-14 | 2005-04-14 | Grand Central Communications, Inc., A Delaware Corporation | Policy management in an interoperability network |
US9473536B2 (en) | 2003-10-14 | 2016-10-18 | Salesforce.Com, Inc. | Method, system, and computer program product for facilitating communication in an interoperability network |
US10489730B2 (en) | 2003-10-16 | 2019-11-26 | Salesforce.Com, Inc. | Managing virtual business instances within a computer network |
US9338214B2 (en) | 2003-10-16 | 2016-05-10 | Salesforce.Com, Inc. | Managing virtual business instances within a computer network |
US9916549B2 (en) | 2003-10-16 | 2018-03-13 | Salesforce.Com, Inc. | Managing virtual business instances within a computer network |
US7904882B2 (en) | 2003-10-16 | 2011-03-08 | Salesforce.Com, Inc. | Managing virtual business instances within a computer network |
US20050086297A1 (en) * | 2003-10-16 | 2005-04-21 | Grand Central Communications, Inc. | Managing virtual business instances within a computer network |
US8775654B2 (en) | 2003-12-19 | 2014-07-08 | Salesforce.Com, Inc. | Apparatus and methods for mediating messages |
US20050138210A1 (en) * | 2003-12-19 | 2005-06-23 | Grand Central Communications, Inc. | Apparatus and methods for mediating messages |
US20050234928A1 (en) * | 2004-03-23 | 2005-10-20 | Grand Central Communications, Inc. | Synchronous interface to asynchronous processes |
US7739351B2 (en) | 2004-03-23 | 2010-06-15 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US9032023B2 (en) | 2004-03-23 | 2015-05-12 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US20100223301A1 (en) * | 2004-03-23 | 2010-09-02 | Salesforce.Com, Inc. | Synchronous Interface to Asynchronous Processes |
US9674226B2 (en) | 2004-03-23 | 2017-06-06 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US8260849B2 (en) | 2004-03-23 | 2012-09-04 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US8478818B2 (en) | 2004-03-23 | 2013-07-02 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US10516700B2 (en) | 2004-03-23 | 2019-12-24 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
US20050228863A1 (en) * | 2004-04-07 | 2005-10-13 | Grand Central Communications, Inc. | Techniques for providing interoperability as a service |
US7590685B2 (en) | 2004-04-07 | 2009-09-15 | Salesforce.Com Inc. | Techniques for providing interoperability as a service |
US20050240826A1 (en) * | 2004-04-08 | 2005-10-27 | International Business Machines Corporation | Method, data processing system, and computer program product for collecting first failure data capture information |
US7308609B2 (en) | 2004-04-08 | 2007-12-11 | International Business Machines Corporation | Method, data processing system, and computer program product for collecting first failure data capture information |
US20060031461A1 (en) * | 2004-05-14 | 2006-02-09 | Mathur Harish C | Deferred method of sending information |
US7546488B2 (en) * | 2004-07-02 | 2009-06-09 | Seagate Technology Llc | Event logging and analysis in a software system |
US20060005080A1 (en) * | 2004-07-02 | 2006-01-05 | Seagate Technology Llc | Event logging and analysis in a software system |
US8838833B2 (en) | 2004-08-06 | 2014-09-16 | Salesforce.Com, Inc. | Providing on-demand access to services in a wide area network |
US20100235445A1 (en) * | 2004-08-06 | 2010-09-16 | Salesforce.Com, Inc. | Providing On-Demand Access to Services in a Wide Area Network |
US7725605B2 (en) | 2004-08-06 | 2010-05-25 | Salesforce.Com, Inc. | Providing on-demand access to services in a wide area network |
US20060163633A1 (en) * | 2004-09-01 | 2006-07-27 | Cem Basceri | Dielectric relaxation memory |
US7143222B2 (en) | 2004-09-21 | 2006-11-28 | International Business Machines Corporation | Adaptive message delivery system |
US20060064527A1 (en) * | 2004-09-21 | 2006-03-23 | Fisher James A | Adaptive message delivery system |
US8108919B2 (en) | 2004-10-01 | 2012-01-31 | Salesforce.Com, Inc. | Application identity design |
US11941230B2 (en) | 2004-10-01 | 2024-03-26 | Salesforce, Inc. | Multiple stakeholders for a single business process |
US9450946B2 (en) | 2004-10-01 | 2016-09-20 | Salesforce.Com, Inc. | Secure identity federation for non-federated systems |
US7721328B2 (en) | 2004-10-01 | 2010-05-18 | Salesforce.Com Inc. | Application identity design |
US10333941B2 (en) | 2004-10-01 | 2019-06-25 | Salesforce.Com, Inc. | Secure identity federation for non-federated systems |
US20100192204A1 (en) * | 2004-10-01 | 2010-07-29 | Salesforce.Com, Inc. | Application Identity Design |
US11042271B2 (en) | 2004-10-01 | 2021-06-22 | Salesforce.Com, Inc. | Multiple stakeholders for a single business process |
US9645712B2 (en) | 2004-10-01 | 2017-05-09 | Grand Central Communications, Inc. | Multiple stakeholders for a single business process |
US9800586B2 (en) | 2004-10-01 | 2017-10-24 | Salesforce.Com, Inc. | Secure identity federation for non-federated systems |
US20060168165A1 (en) * | 2005-01-22 | 2006-07-27 | Boss Gregory J | Provisional application management with automated acceptance tests and decision criteria |
US7478283B2 (en) | 2005-01-22 | 2009-01-13 | International Business Machines Corporation | Provisional application management with automated acceptance tests and decision criteria |
US7836432B2 (en) | 2005-07-28 | 2010-11-16 | International Business Machines Corporation | Systems and methods for embedded application test suites |
US20080215931A1 (en) * | 2005-07-28 | 2008-09-04 | Gregory Jensen Boss | Systems and Methods for Embedded Application Test Suites |
US20070061628A1 (en) * | 2005-09-09 | 2007-03-15 | International Business Machines Corporation | System and method for examining remote systems and gathering debug data in real time |
US7523352B2 (en) | 2005-09-09 | 2009-04-21 | International Business Machines Corporation | System and method for examining remote systems and gathering debug data in real time |
US8230396B2 (en) * | 2006-01-06 | 2012-07-24 | International Business Machines Corporation | Apparatus and method to debug a software program |
US20070168980A1 (en) * | 2006-01-06 | 2007-07-19 | Reed David C | Apparatus and method to debug a software program |
US8863148B1 (en) * | 2007-01-09 | 2014-10-14 | Marvell International Ltd. | Small debug print |
US20080276129A1 (en) * | 2007-05-02 | 2008-11-06 | International Business Machines Corporation | Software tracing |
US20090006907A1 (en) * | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Method and apparatus for identification of program check errors indicating code with high potential for storage overlay |
US7818633B2 (en) | 2007-06-29 | 2010-10-19 | International Business Machines Corporation | Method and apparatus for identification of program check errors indicating code with high potential for storage overlay |
US20090063907A1 (en) * | 2007-08-29 | 2009-03-05 | Matsushita Electric Industrial Co., Ltd. | Debugging system, debugging apparatus and method |
US20090138854A1 (en) * | 2007-11-22 | 2009-05-28 | Suresh Mani | Software error detection method, software module, database and system |
US20090222492A1 (en) * | 2008-02-28 | 2009-09-03 | Mtsubishi Electric Corporation | Logging Device and Recording Medium |
US20090299951A1 (en) * | 2008-05-30 | 2009-12-03 | Fujitsu Limited | Failure-handling procedure knowledge forming apparatus and method thereof |
US20090313506A1 (en) * | 2008-06-12 | 2009-12-17 | Microsoft Corporation | Test Result Aggregation and Analysis Using Text Expressions |
TWI414937B (en) * | 2008-10-03 | 2013-11-11 | Fujitsu Ltd | Computer apparatus and processor diagnostic method |
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
US9170883B2 (en) * | 2009-02-09 | 2015-10-27 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
US20140372832A1 (en) * | 2009-02-09 | 2014-12-18 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
US20100269091A1 (en) * | 2009-04-20 | 2010-10-21 | International Business Machines Corporation | Jvm exception debugging |
WO2010145365A1 (en) * | 2009-10-29 | 2010-12-23 | 中兴通讯股份有限公司 | Method, system and server for error handling in mobile terminal |
US8386602B2 (en) | 2010-11-02 | 2013-02-26 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system |
US8769096B2 (en) | 2010-11-02 | 2014-07-01 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system |
US8495661B2 (en) | 2010-11-02 | 2013-07-23 | International Business Machines Corporation | Relevant alert delivery with event and alert suppression in a distributed processing system |
US8898299B2 (en) | 2010-11-02 | 2014-11-25 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8364813B2 (en) | 2010-11-02 | 2013-01-29 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8825852B2 (en) | 2010-11-02 | 2014-09-02 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system |
US8621277B2 (en) | 2010-12-06 | 2013-12-31 | International Business Machines Corporation | Dynamic administration of component event reporting in a distributed processing system |
US8627154B2 (en) | 2010-12-06 | 2014-01-07 | International Business Machines Corporation | Dynamic administration of component event reporting in a distributed processing system |
US8805999B2 (en) | 2010-12-07 | 2014-08-12 | International Business Machines Corporation | Administering event reporting rules in a distributed processing system |
US8737231B2 (en) | 2010-12-07 | 2014-05-27 | International Business Machines Corporation | Dynamic administration of event pools for relevant event and alert analysis during event storms |
US8730816B2 (en) | 2010-12-07 | 2014-05-20 | International Business Machines Corporation | Dynamic administration of event pools for relevant event and alert analysis during event storms |
US8868984B2 (en) | 2010-12-07 | 2014-10-21 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system with event listeners and alert listeners |
US8868986B2 (en) | 2010-12-07 | 2014-10-21 | International Business Machines Corporation | Relevant alert delivery in a distributed processing system with event listeners and alert listeners |
US8645757B2 (en) | 2011-05-26 | 2014-02-04 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8639980B2 (en) | 2011-05-26 | 2014-01-28 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US9213621B2 (en) | 2011-05-27 | 2015-12-15 | International Business Machines Corporation | Administering event pools for relevant event analysis in a distributed processing system |
US8676883B2 (en) | 2011-05-27 | 2014-03-18 | International Business Machines Corporation | Event management in a distributed processing system |
US9344381B2 (en) | 2011-05-27 | 2016-05-17 | International Business Machines Corporation | Event management in a distributed processing system |
US9201756B2 (en) | 2011-05-27 | 2015-12-01 | International Business Machines Corporation | Administering event pools for relevant event analysis in a distributed processing system |
US8660995B2 (en) | 2011-06-22 | 2014-02-25 | International Business Machines Corporation | Flexible event data content management for relevant event and alert analysis within a distributed processing system |
US9286143B2 (en) | 2011-06-22 | 2016-03-15 | International Business Machines Corporation | Flexible event data content management for relevant event and alert analysis within a distributed processing system |
US8689050B2 (en) | 2011-06-22 | 2014-04-01 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US8713366B2 (en) | 2011-06-22 | 2014-04-29 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US8880944B2 (en) | 2011-06-22 | 2014-11-04 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US9419650B2 (en) | 2011-06-22 | 2016-08-16 | International Business Machines Corporation | Flexible event data content management for relevant event and alert analysis within a distributed processing system |
US8880943B2 (en) | 2011-06-22 | 2014-11-04 | International Business Machines Corporation | Restarting event and alert analysis after a shutdown in a distributed processing system |
US9178936B2 (en) | 2011-10-18 | 2015-11-03 | International Business Machines Corporation | Selected alert delivery in a distributed processing system |
US9178937B2 (en) | 2011-10-18 | 2015-11-03 | International Business Machines Corporation | Selected alert delivery in a distributed processing system |
US8893157B2 (en) | 2011-10-18 | 2014-11-18 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US9246865B2 (en) | 2011-10-18 | 2016-01-26 | International Business Machines Corporation | Prioritized alert delivery in a distributed processing system |
US8887175B2 (en) | 2011-10-18 | 2014-11-11 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8954811B2 (en) | 2012-08-06 | 2015-02-10 | International Business Machines Corporation | Administering incident pools for incident analysis |
US8943366B2 (en) | 2012-08-09 | 2015-01-27 | International Business Machines Corporation | Administering checkpoints for incident analysis |
US8904412B2 (en) * | 2012-09-26 | 2014-12-02 | International Business Machines Corporation | Dynamic performance data collection in large computer servers |
US9471411B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Monitoring and capturing early diagnostic data |
US9361184B2 (en) | 2013-05-09 | 2016-06-07 | International Business Machines Corporation | Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system |
US9170860B2 (en) | 2013-07-26 | 2015-10-27 | International Business Machines Corporation | Parallel incident processing |
US9658902B2 (en) | 2013-08-22 | 2017-05-23 | Globalfoundries Inc. | Adaptive clock throttling for event processing |
US9256482B2 (en) | 2013-08-23 | 2016-02-09 | International Business Machines Corporation | Determining whether to send an alert in a distributed processing system |
US9602337B2 (en) | 2013-09-11 | 2017-03-21 | International Business Machines Corporation | Event and alert analysis in a distributed processing system |
US10171289B2 (en) | 2013-09-11 | 2019-01-01 | International Business Machines Corporation | Event and alert analysis in a distributed processing system |
US9086968B2 (en) | 2013-09-11 | 2015-07-21 | International Business Machines Corporation | Checkpointing for delayed alert creation |
US10152366B2 (en) * | 2013-09-24 | 2018-12-11 | Nec Corporation | Log analysis system, fault cause analysis system, log analysis method, and recording medium which stores program |
US9389943B2 (en) | 2014-01-07 | 2016-07-12 | International Business Machines Corporation | Determining a number of unique incidents in a plurality of incidents for incident processing in a distributed processing system |
US9348687B2 (en) | 2014-01-07 | 2016-05-24 | International Business Machines Corporation | Determining a number of unique incidents in a plurality of incidents for incident processing in a distributed processing system |
CN105159831A (en) * | 2015-08-31 | 2015-12-16 | 浪潮集团有限公司 | Method for automatically monitoring quality of software code |
US9946592B2 (en) | 2016-02-12 | 2018-04-17 | International Business Machines Corporation | Dump data collection management for a storage area network |
US11016862B2 (en) * | 2017-05-23 | 2021-05-25 | International Business Machines Corporation | Error-initiated mirror redrive to collect diagnostic information |
US10628280B1 (en) | 2018-02-06 | 2020-04-21 | Northrop Grumman Systems Corporation | Event logger |
US20190318098A1 (en) * | 2018-04-12 | 2019-10-17 | United States Of America, As Represented By The Secretary Of The Navy | Source Code Diagnostic Instrument |
US10762211B2 (en) * | 2018-04-12 | 2020-09-01 | United States Of America, As Represented By The Secretary Of The Navy | Source code diagnostic instrument |
US11061809B2 (en) * | 2019-05-29 | 2021-07-13 | Red Hat, Inc. | Software debugging system with improved test execution and log file tracking |
US11580255B2 (en) | 2019-11-11 | 2023-02-14 | Bank Of America Corporation | Security tool for n-tier platforms |
Also Published As
Publication number | Publication date |
---|---|
JPH0432417B2 (en) | 1992-05-29 |
EP0403415A2 (en) | 1990-12-19 |
JPH0325629A (en) | 1991-02-04 |
EP0403415A3 (en) | 1991-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5119377A (en) | System and method for software error early detection and data capture | |
US6182243B1 (en) | Selective data capture for software exception conditions | |
US6651183B1 (en) | Technique for referencing failure information representative of multiple related failures in a distributed computing environment | |
US7373554B2 (en) | Techniques for automatic software error diagnostics and correction | |
US8140565B2 (en) | Autonomic information management system (IMS) mainframe database pointer error diagnostic data extraction | |
US7003781B1 (en) | Method and apparatus for correlation of events in a distributed multi-system computing environment | |
US7475387B2 (en) | Problem determination using system run-time behavior analysis | |
US7320125B2 (en) | Program execution stack signatures | |
US6253317B1 (en) | Method and apparatus for providing and handling traps | |
US6012148A (en) | Programmable error detect/mask utilizing bus history stack | |
US6973643B2 (en) | Method, system and program for handling errors occurring in function calls | |
US6745344B1 (en) | Debug and data collection mechanism utilizing a difference in database state by using consecutive snapshots of the database state | |
US7231550B1 (en) | Event protocol and resource naming scheme | |
US20090106595A1 (en) | Gathering information for use in diagnostic data dumping upon failure occurrence | |
US20050203952A1 (en) | Tracing a web request through a web server | |
WO2007035808A1 (en) | Server application state | |
US7237232B2 (en) | Method and system for recording program information in the event of a failure | |
WO2000030232A1 (en) | Method and system for external notification and/or resolution of software errors | |
EP0530863B1 (en) | Method of starting up a subsystem in a distributed processing system | |
US8327189B1 (en) | Diagnosing an incident on a computer system using a diagnostics analyzer database | |
US7500144B2 (en) | Resolving problems in a business process utilizing a situational representation of component status | |
US7457991B1 (en) | Method for scanning windows event logs on a cellular multi-processor (CMP) server | |
US6530041B1 (en) | Troubleshooting apparatus troubleshooting method and recording medium recorded with troubleshooting program in network computing environment | |
JP2001243089A (en) | Device and method for verifying software | |
Li et al. | A software fault insertion testing methodology for improving the robustness of telecommunications systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,, NEW Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:COBB, PAUL R.;LENNON, CHRISTOPHER J.;LONG, KENNETH J.;REEL/FRAME:005149/0411;SIGNING DATES FROM 19890615 TO 19890627 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20040602 |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |