Data processing: software development – installation – and managem – Software program development tool – Testing or debugging
Reexamination Certificate
2000-07-20
2004-05-25
Dam, Tuan (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Testing or debugging
C717S131000, C717S128000
Reexamination Certificate
active
06742178
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to data processing systems, and in particular, methods for correlating instrumentation to class files in an object oriented programming language.
BACKGROUND OF THE INVENTION
In analyzing and enhancing performance of a data processing system and the applications executing within the data processing system, it is helpful to know which software modules within a data processing system are using system resources. Effective management and enhancement of data processing systems requires knowing how and when various system resources are being used. Performance tools are used to monitor and examine a data processing system to determine resource consumption as various software applications are executing within the data processing system. For example, a performance tool may identify the most frequently executed modules and instructions in a data processing system, or may identify those modules, which allocate the largest amount of memory or perform the most I/O requests. Hardware performance tools may be built into the system or added at a later point in time. Software performance tools also are useful in data processing systems, such as personal computer systems, which typically do not contain many, if any, built-in hardware performance tools.
One known software performance tool is a trace tool. A trace tool may use more than one technique to provide trace information that indicates execution flows for an executing program. One technique keeps track of particular sequences of instructions by logging certain events as they occur, so-called event-based profiling technique. For example, a trace tool may log every entry into, and every exit from, a module, subroutine, method, function, or system component. Alternately, a trace tool may log the requester and the amounts of memory allocated for each memory allocation request. Typically, a time-stamped record is produced for each such event along with a value related to the amount of resources consumed.
In order to improve performance of code generated by various families of computers, it is often necessary to determine where time is being spent by the processor in executing code, such efforts being commonly known in the computer processing arts as locating “hot spots.” Ideally, one would like to isolate such hot spots at the instruction and/or source line of code level in order to focus attention on areas, which might benefit most from improvements to the code.
Thus, it is at least as important to accurately map the execution path flow between modules as it is to accurately measure the resources consumed by a particular module. If the path flow cannot be accurately mapped, then the consumption of resources attributed to a particular module is also suspect. One way of tracking path flow is by instrumenting calls to individual modules. Class files are instrumented with trace hooks which may be written to a record each time a module (or method) is entered or exited. For example, at each method entry event a entry trace hook is output for that method entry and at each method exit event a trace exit hook is output for that method exit.
A trace hook identifies a software method by major and minor codes unique to that method. Therefore, when instrumenting a method, a file is created that correlates method names to major and minor codes for the method. This file is called the hook definition file (HDF). Each time the instrumention of a class is modified, the existing HDF must be updated or a new file created. The HDF is stored for use in the postprocessing phase.
When a method entry or exit event occurs, the hook for that event is output, along with metric information related to the amount of resources consumed. The hook includes the unique major/minor codes for the instrumented method. In postprocessing phase, the amount of resources consumed by each method, or other software module, may be calculated from the trace output and a detailed profiling information record may be generated. The profiling information record identifies each method by unique major and minor code which is obtained from the hook. The record is far more usable if the major and minor codes are replaced by the corresponding method name. Therefore, the current version of the HDF is found and merged with the profiling information record.
Methods may be misidentified or left unnamed if the current version of the HDF is not used for merging with the report. Also, because the HDF is a separated file and not physically associated with any class, the HDF may become lost, necessitating the user generate a new HDF version prior to analyzing the profiling information report.
Consequently, it would be desirable to have a system and method for providing correlation information between class files and instrumentation. It would be desirable to have a system and method which would associate that information with the class file from which it was created.
SUMMARY OF THE INVENTION
A class file is instrumented with hooks. Each hook is injected in a method at a critical point in the code for tracking path flow, such as where the method will be entered or exited. Each hook includes an identifier to identify the method in which it is injected. Rather than using the method's name, hooks use unique major and minor codes to identify the method. Static initializers are declared for the class to output other hooks identifying the methods being instrumented. When a class is loaded, the static initializers are executed and hooks identifying the method name and the major and minor codes for each instrumented method are output to, for instance, a trace record. Then, when a method is entered or exited, the hooks identifying the entry or exit are also outputted to a trace record. When postprocessing the trace records, class and instrumentation correlation information is available for merging from trace records in the trace stream.
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: 6557168 (2003-04-01), Czajkowski
patent: WO 94/14117 (1994-06-01), None
patent: 296 00 609 (1997-03-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 dtabase Mar. 17, 2003.*
Sinha,
Berry Robert Francis
Gu Weiming
Hussain Riaz Y.
Levine Frank Eliot
Wong Wai Yee Peter
Dam Tuan
International Business Machines - Corporation
Leeuven Leslie A. Van
Steelman Mary
Walder, Jr. Stephen J.
LandOfFree
System and method for instrumenting application class files... 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 instrumenting application class files..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for instrumenting application class files... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3251082