Data processing: software development – installation – and managem – Software program development tool – Testing or debugging
Reexamination Certificate
2000-07-20
2003-12-09
Dam, Tuan Q. (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Testing or debugging
C717S127000, C717S128000, C717S131000, C717S152000, C717S154000, C717S158000
Reexamination Certificate
active
06662359
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates generally to data processing systems, and in particular, to methods handling path flow exception and finalization processing in an object oriented programming language.
2. Description of Related Art
In languages like C or C++, most errors, such as accessing an array element beyond the end of an array, are undetected. Those errors that are detected, such as an attempt to divide a number by zero, usually cause the program to print out a brief error message and terminate immediately.
A Java system's error handling is more sophisticated. When an error occurs in a method while a program is running, an exception is generated. The method then deals with the exception in one of two ways: with an exception handler or by throwing the exception. An exception handler is a section of the program that checks for a particular type of exception and then executes if the exception occurs. Throwing an exception refers the exception back to the method that called it. If an exception is thrown to the calling method, then this method can in turn either handle the exception in its own exception handler, or throw the exception to its caller. This process continues until either some section of the program handles the exception, or the exception gets thrown to the system. For example, the exception would be thrown to the system when the main method throws an exception. If the system is thrown an exception, it handles it by printing an error message and terminating the program that caused the exception.
An important part of understanding path flow is by instrumenting calls to individual routines. However, in object oriented programming languages such as Java, the flow of control can also include exception and finalization processing. Without including exception processing, during postprocessing exit events may be found that do not have matching entry events, thus the post processing results are subject to incorrect results.
It would be advantageous to provide instrumentation support for exceptions.
SUMMARY OF THE INVENTION
The present invention is directed to a system, method and instructions for handling path flow exception and finalization processing in an object oriented programming language. Initially, each instrumented method is checked for a code to indicate an exception being thrown. A hook is inserted before the exception code and identifies the method throwing the exception. Methods must also be checked for exception tables. When an exception table is found, then a hook is inserted at the entry point of each exception handler for every entry in the exception table. This hook identifies the method which catches the exception or handles finalization processing.
REFERENCES:
patent: 4746920 (1988-05-01), Nellen et al.
patent: 4821220 (1989-04-01), Duisberg
patent: 5047919 (1991-09-01), Sterling et al.
patent: 5161226 (1992-11-01), Wainer
patent: 5179702 (1993-01-01), Spix et al.
patent: 5307499 (1994-04-01), Yin
patent: 5355487 (1994-10-01), Keller et al.
patent: 5371878 (1994-12-01), Coker
patent: 5442758 (1995-08-01), Slingwine et al.
patent: 5450586 (1995-09-01), Kuzara et al.
patent: 5459868 (1995-10-01), Fong
patent: 5483654 (1996-01-01), Staron et al.
patent: 5485574 (1996-01-01), Bolosky et al.
patent: 5509070 (1996-04-01), Schull
patent: 5613118 (1997-03-01), Heisch et al.
patent: 5682328 (1997-10-01), Roeber et al.
patent: 5706515 (1998-01-01), Connelly et al.
patent: 5742672 (1998-04-01), Burk
patent: 5758061 (1998-05-01), Plum
patent: 5761380 (1998-06-01), Lewis et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5799143 (1998-08-01), Butt et al.
patent: 5845077 (1998-12-01), Fawcett
patent: 5872909 (1999-02-01), Wilner et al.
patent: 5884080 (1999-03-01), Blandy et al.
patent: 5884082 (1999-03-01), Seidel et al.
patent: 5908470 (1999-06-01), Stonecypher, Jr.
patent: 5919247 (1999-07-01), Van Hoff et al.
patent: 5964846 (1999-10-01), Berry et al.
patent: 5966540 (1999-10-01), Lister et al.
patent: 5978578 (1999-11-01), Azarya et al.
patent: 5991543 (1999-11-01), Amberg et al.
patent: 5995757 (1999-11-01), Amberg et al.
patent: 6006035 (1999-12-01), Nabahi
patent: 6026237 (2000-02-01), Berry et al.
patent: 6151701 (2000-11-01), Humphreys et al.
patent: 6186677 (2001-02-01), Angel et al.
patent: 6314558 (2001-11-01), Angel et al.
patent: 6481008 (2002-11-01), Chaiken et al.
patent: 296 00 609 (1997-03-01), None
patent: WO 94/14117 (1994-06-01), None
patent: WO 96/12224 (1996-04-01), None
Pavlopoulou, Christina and Young, Michal, “Residual Test Coverage Monitoring”, p. 277-284, 1999 ICSE, Los Angeles, CA retrieved from ACM Portal database Mar. 17, 2003.*
Sinha, Saurabh and Harrold, Mary Jean, “Analysis of Programs with Exception-Handling Constructs”, p. 1-10, IEEE 1998, retrieved from IEEE database Mar. 17, 2003.*
Sinha, Saurabh and Harrold, Mary Jean, “Criteria for Testing Exception-Handling Constructs in Java Programs”, p. 1-36, 1999, retrieved from Google.com, Mar. 17, 2003.*
A Unifying Approach to Performance Analysis in The Java Environment; Alexander et al; vol. 39, No. 1; pp 1-16 Nov. 1, 2000.
Java Virtual Machine Profiler Interface; Viswanathan et al.; vol. 39, No. 1; pp. 1-14 Nov. 1, 2000.
Call Path Profiling of Monotonic Program Resources in UNIX; Hall et al; Jun. 24-25, 1993; pp. 1-13.
Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling; Ammons et al; 1997; pp. 85-96.
Optimally Profiling and Tracing Programs; Ball et al; Jul. 1994; pp 1319-1360.
Data Structure and Insertion Algorithm for Representing Asynchronous Occurrences for Visualization by Trace Visualization Tools using Ghant Charts with Occurrence Hierarchies; International Business Machines Technical Disclosure Bulletin; vol 36, No. 07, Jul. 1993; pp. 547-557.
Adaptive Trace-Directed Program Restructuring; International Business Machines Technical Disclosure Bulletin; vol 37 No 02B, Feb. 1994; pp. 115-116.
Profiling and Tracing Dynamic Library Usage Via Interposition; Curry; USENIX Conference; 1994; pp. 267-278.
Application of Interpreter for Debugging Functions; International Business Machines Technical Disclosure Bulletin; vol 36, No 09B, Sep. 1993; pp 67-68.
Minimizing Locking to Access Global Shared Data; International Business Machines Technical Disclosure Bulletin; Feb. 1995; pp. 619-622.
Berry Robert Francis
Howard John Day
Hussain Riaz Y.
Levine Frank Eliot
Urquhart Robert John
Bailey Wayne P.
Dam Tuan Q.
Leeuwen Leslie A. Van
Steelman Mary
Yee Duke W.
LandOfFree
System and method for injecting hooks into Java classes to... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for injecting hooks into Java classes to..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for injecting hooks into Java classes to... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3149413