Analysis of executable program code using compiler-generated...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S157000, C717S151000

Reexamination Certificate

active

06817014

ABSTRACT:

FIELD OF THE INVENTION
The present invention generally relates to analysis of executable program code, and more particularly to finding entry points and endpoints of functions in support of program analysis.
BACKGROUND
Analysis of binary executable programs is performed to analyze program performance, verify correctness, and test correct runtime operation, for example. Some analyses are performed prior to runtime (static analysis), while other analyses are performed during runtime (dynamic analysis). For both static and dynamic analysis, however, the analysis may be performed at the function level.
The term, “function”, refers to named sections of code that are callable in the source program and encompasses routines, procedures, methods and other similar constructs known to those skilled in the art. The functions in the source code are compiled into segments of executable code. For convenience, the segments of executable code that correspond to the functions in the source code are also referred to as “functions”.
A function is a set of instructions beginning at an entry point and ending at an endpoint. The entry point is the address at which execution of the function begins as the target of a branch instruction. The endpoint is the instruction of the function from which control is returned to the point in the program at which the function was initiated. For functions having multiple entry points and/or multiple endpoints, the first entry point and the last endpoint define a function.
The function entry points and endpoints of a program have in the past been obtained from symbol tables that are associated with the executable program code and from debug information that is present with the file having the executable program code (an “executable”). The debug information includes, for example, types of data entities, names of data entities, and the relationship between source and binary code. A symbol table contains a mapping of symbolic names of functions to entry points of the functions. However, since the generation of debug information is selectable at the compilation stage, some executables do not have debug information. Similarly, the presence of symbol tables is often optional, since in most environments a symbol table is unnecessary to run an executable. Thus, effective analysis of an executable presently depends on whether there is sufficient debug information or a complete symbol table.
A system and method that address the aforementioned problems, as well as other related problems, are therefore desirable.
SUMMARY OF THE INVENTION
The present invention provides in various embodiments a method and apparatus for analysis of executable program code. The executable program includes segments of code that correspond to callable functions in the source code from which the executable code was generated. Compiler-generated checkpoint descriptors are included in the executable and include pairs of entry points and endpoints. Each pair of entry points and endpoints is associated with a callable function in the source code. The pairs of entry points and endpoints are read from the executable program code and used to generate analysis data for the associated functions. In other embodiments, pairs of entry points and endpoints are additionally assembled from dynamic load modules and symbol tables.
It will be appreciated that various other embodiments are set forth in the Detailed Description and claims which follow.


REFERENCES:
patent: 5394547 (1995-02-01), Correnti et al.
patent: 5481713 (1996-01-01), Wetmore et al.
patent: 5491808 (1996-02-01), Geist, Jr.
patent: 5761477 (1998-06-01), Wahbe et al.
patent: 5842017 (1998-11-01), Hookway et al.
patent: 5940618 (1999-08-01), Blandy et al.
patent: 5966537 (1999-10-01), Ravichandran
patent: 5966539 (1999-10-01), Srivastava
patent: 5999737 (1999-12-01), Srivastava
patent: 6011919 (2000-01-01), Politis et al.
patent: 6026235 (2000-02-01), Shaughnessy
patent: 6044224 (2000-03-01), Radia et al.
patent: 6072951 (2000-06-01), Donovan et al.
patent: 6090155 (2000-07-01), Donovan et al.
patent: 6092180 (2000-07-01), Anderson et al.
patent: 6154876 (2000-11-01), Haley et al.
patent: 6182283 (2001-01-01), Thomson
patent: 6189141 (2001-02-01), Benitez et al.
patent: 6269477 (2001-07-01), Fitzgerald et al.
patent: 6311324 (2001-10-01), Smith et al.
patent: 6311326 (2001-10-01), Shagam
patent: 6317870 (2001-11-01), Mattson, Jr.
patent: 6327699 (2001-12-01), Larus et al.
patent: 6341371 (2002-01-01), Tandri
patent: 6654793 (2003-11-01), Wollrath et al.
patent: 6665671 (2003-12-01), Coutant
patent: 6698015 (2004-02-01), Moberg et al.
patent: 6708330 (2004-03-01), Moberg et al.
Compilers Principles, Techniques and Tools, Aho et al, Chapters 1 -2, Sep. 12, 1885.*
Microsoft Visual C++ Professional Tools User's Guides Source Profiler version 1.0, Microsoft Documentation, pp. 1-72, 1993.*
“Turbo Profiler 2.0 User's Guide”, Borland Corporation, pp. 1-226, 1991.*
“IBM Research Reprt DAISY Dynamic Compilation for 100% Architectural Compatibilty”, Kernal Ebcioglu et al, IBM Research, Aug. 5, 1996.*
“SHADE: A Fast Instruction-Set Simulator for Execution Profiling”, Bob Cmelik et al, ACM, pp. 128 -136, 1994.*
“An Execution Profiler for Modular Programs”, S.L. Graham et al, published John Wiley & Sons, Mar. 10, 1983, pp. 671 -685.*
“Interprocedural Optimization Eliminating Unnecessary Recompilation”, M. Burke et al, IBM Research, ACM pp. 367-399, vol 15, No. 3, Jul. 1993.*
“Trace-directed program restructuring for AIX executables”, R.R. Heisch, IBM Research, Sep. 1994.*
“Using Profile Information to Assist Classic Code Optimization”, P.F. Chang et al, Published by John wiley & Sons Ltd., Jun. 25, 1991 pp. 1301 -1321.*
Compilers Principles, Techniques and Tools, Aho et al, pp. 473 478, published Sep. 12, 1985.*
Miller et al.,The Paradyn Parallel Performance Measurement Tools, IEEE Computer 28, Nov. 11, 1995, pp. 1-22.
Srivastava, Amitabh, and Eustace, Alan,ATOM A System for Building Customized Program Analysis Tools, Digital Equipment Western Research Laboratory, pp. 196-205.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Analysis of executable program code using compiler-generated... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Analysis of executable program code using compiler-generated..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Analysis of executable program code using compiler-generated... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3328862

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.