← Back to Patent Explorer
US5560009A Expired / Lapsed US ⏱️ 0.0 years remaining

Generating symbolic debug information by merging translation and compiler debug information

Assignee: HP Inc
•
Filing: 1990-09-21
•
Granted: 1996-09-24
•
Expires: 2010-09-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention comprises a computer-based system and method for generating meaningful symbolic debug information in translator-based software compilation systems. The present invention includes a translator, a compiler, a merger, and a debugger. The compiler and translator each generate symbolic debug information for a source code. The merger combines the debug information generated by the compiler and translator into a final debug information. The final debug information completely and accurately describes the source code. The debugger uses the final debug information to completely and accurately display the original source code, and to efficiently and effectively use actual variable and function names (from the original source code) when working with variables and functions.

Inventors

  • 👤 Dmitry Lenkov
  • 👤 Shankar Unni
  • 👤 Michey Mehta
  • 👤 Mark W. McDowell
  • 👤 Manoj Dadoo
  • 👤 Bruno Melli

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 04:55
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3624; G06F8/00; G06F8/40; G06F8/41; G06F11/30; G06F11/32

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 115 words
A computer-based system for generating meaningful symbolic debug information for a source code, adapted for use in translator-based software compilers, the system comprising: (1) first means for generating a translator debug information for the source code; (2) second means comprising: (a) means for generating an object code for the source code; (b) means for generating a compiler debug information for the source code; and (c) means for storing said object code and said compiler debug information in a first object code file; and (3) third means for merging said translator and compiler debug information to form final debug information for the source code, wherein said final debug information completely and accurately represents the source code.
Claim 2
Dependent Claim 115 words
A computer-based system for generating meaningful symbolic debug information for a source code, adapted for use in translator-based software compilers, the system comprising: (1) first means for generating a translator debug information for the source code; (2) second means comprising: (a) means for generating an object code for the source code; (b) means for generating a compiler debug information for the source code; and (c) means for storing said object code and said compiler debug information in a first object code file; and (3) third means for merging said translator and compiler debug information to form final debug information for the source code, wherein said final debug information completely and accurately represents the source code.
Claim 3
Dependent Claim 25 words
The system of claim 1, further comprising: (4) fourth means for locating and correcting errors in the source code by using said final debug information.
Claim 4
Dependent Claim 81 words
The system of claim 2, wherein said fourth means comprises: (1) means for displaying function type information; (2) means for providing for anonymous unions; (3) means for providing for enums defined within classes; (4) means for providing for multiple identical code segments; (5) means for providing for class scopes; (6) means for processing instance breakpoints; (7) means for processing pointers to class members; (8) means for processing class breakpoints; and (9) means for processing group operations on sets of overloaded functions.
Claim 5
Dependent Claim 28 words
The system of claim 1, further comprising means for generating an intermediate source code, wherein said intermediate source code represents an intermediate compiled version of the source code.
Claim 6
Dependent Claim 30 words
The system of claim 4, wherein the source code is written in a C++ computer programming language, and said intermediate source code is written in a C computer programming language.
Claim 7
Dependent Claim 75 words
The system of claim 1, wherein said third means comprises: (1) fourth means for generating first and second debug data structures from said translator and compiler debug information; (2) fifth means for generating a merged lookup table from said translator and compiler debug data structures, wherein said merged lookup table comprises said final debug information; and (3) sixth means for storing said object code and said final debug information in a second object code file.
Claim 8
Dependent Claim 92 words
The system of claim 6, wherein said second means for generating a merged lookup table comprises: (1) first means for generating first and second lookup tables from said first and second debug data structures; (2) second means for matching said first and second lookup tables so that entries in said first lookup table have corresponding entries in said second lookup table; and (3) third means for copying portions of said compiler debug information from said lookup table to said first lookup table, wherein said first lookup table comprises said merged lookup table.
Claim 9
Dependent Claim 28 words
The system of claim 1, wherein said translator debug information completely and accurately reflects the structure of said source code, but lacks information regarding machine addresses and architecture.
Claim 10
Dependent Claim 30 words
The system of claim 1, wherein said compiler debug information includes information regarding machine addresses and architecture, but does not completely and accurately reflect the structure of said source code.
Claim 11
Independent Claim 92 words
A method for generating meaningful symbolic debug information for a source code, adapted for use in translator-based software compilation systems, the method comprising the steps of: (a) generating translator debug information for the source code; (b) generating an intermediate source code for the source code; (c) generating compiler debug information for the source code; (d) generating an object code for the source code; (e) merging said translator and compiler debug information to form final debug information for the source code; wherein said final debug information completely and accurately represents the source code.
Claim 12
Independent Claim 92 words
A method for generating meaningful symbolic debug information for a source code, adapted for use in translator-based software compilation systems, the method comprising the steps of: (a) generating translator debug information for the source code; (b) generating an intermediate source code for the source code; (c) generating compiler debug information for the source code; (d) generating an object code for the source code; (e) merging said translator and compiler debug information to form final debug information for the source code; wherein said final debug information completely and accurately represents the source code.
Claim 13
Dependent Claim 25 words
The method of claim 10, further comprising the step of: (f) locating and correcting errors in the source code by using said final debug information.
Claim 14
Dependent Claim 70 words
The method of claim 11, wherein said step for locating and correcting errors comprises the steps of: (a) displaying function type information; (b) providing for anonymous unions; (c) providing the enums defined within classes; (d) providing for multiple identical code segments; (e) providing for class scopes; (f) processing instance breakpoints; (g) processing pointers to class members; (h) processing class breakpoints; and (i) processing group operations on sets of overload functions.
Claim 15
Dependent Claim 88 words
The method of claim 10, wherein the step of merging comprises the steps of: (a) reading said translator and compiler debug information; (b) generating first and second debug data structures from said translator and compiler debug information; (c) generating a merged lookup table from said first and second debug data structures, wherein said merged lookup table comprises said final debug information; and (d) storing said object code and said final debug information in an object code file, wherein said object code file includes an object code file header.
Claim 16
Dependent Claim 107 words
The method of claim 13, wherein said step for generating a merged lookup table comprises the steps of: generating first and second lookup tables from said first and second debug data structures; (b) matching said first and second lookup tables so that entries in said first lookup table have corresponding entries in said second lookup table; (c) copying portions of said compiler debug information from said second lookup table to said first lookup table; (d) marking entries in said first lookup table for deletion; and (e) deleting said entries marked for deletion in said first lookup table; wherein said first lookup table comprises said merged lookup table.
Claim 17
Dependent Claim 38 words
The method of claim 14, wherein the step for matching comprises the steps of: (a) reducing said first and second lookup tables to their most compact form; and (b) performing a depth-first traversal of said first lookup table.
Claim 18
Dependent Claim 67 words
The method of claim 13, wherein the step for storing comprises the steps of: (a) opening said object code file for writing; (b) defining a header area in said object code file; (c) storing said object code and said information from said merged lookup table in said object code file, outside of said header area; and (d) storing said object code file header in said header area.
Claim 19
Dependent Claim 30 words
The method of claim 10, wherein the source code is written in a C++ computer programming language, and said intermediate source code is written in a C computer programming language.
Claim 20
Dependent Claim 28 words
The method of claim 10, wherein said translator debug information completely and accurately reflects the structure of said source code, but lacks information regarding machine addresses and architecture.
Claim 21
Dependent Claim 30 words
The method of claim 10, wherein said compiler debug information includes information regarding machine addresses and architecture, but does not completely and accurately reflect the structure of said source code.
Claim 22
Dependent Claim 87 words
A computer program product having a computer readable medium having computer program logic recorded thereon for generating meaningful symbolic debug information for a source code, said computer program product comprising: (1) first means for generating translator debug information for a source code; (2) second means for generating compiler debug information for said source code; and (3) third means for merging said translator and compiler debug information to form final debug information for said source code; wherein said final debug information completely and accurately represents said source code.
Claim 23
Dependent Claim 87 words
A computer program product having a computer readable medium having computer program logic recorded thereon for generating meaningful symbolic debug information for a source code, said computer program product comprising: (1) first means for generating translator debug information for a source code; (2) second means for generating compiler debug information for said source code; and (3) third means for merging said translator and compiler debug information to form final debug information for said source code; wherein said final debug information completely and accurately represents said source code.
Claim 24
Dependent Claim 25 words
The system of claim 20, further comprising: (4) fourth means for locating and correcting errors in said source code by using said final debug information.
Claim 25
Dependent Claim 112 words
A computer-based system for merging translator debug information and compiler debug information to form final debug information for a source code, adapted for use with an object code of the source code, wherein said final debug information completely and accurately represents the source code, the system comprising: (1) first means for generating first and second debug data structures from said translator and compiler debug information; (2) second means for generating a merged lookup table from said first and second debug data structures, wherein said merged lookup table comprises said final debug information; and (3) third means for storing the object code and said final debug information in a second object code file.
Claim 26
Dependent Claim 112 words
A computer-based system for merging translator debug information and compiler debug information to form final debug information for a source code, adapted for use with an object code of the source code, wherein said final debug information completely and accurately represents the source code, the system comprising: (1) first means for generating first and second debug data structures from said translator and compiler debug information; (2) second means for generating a merged lookup table from said first and second debug data structures, wherein said merged lookup table comprises said final debug information; and (3) third means for storing the object code and said final debug information in a second object code file.
Claim 27
Dependent Claim 93 words
The system of claim 22, wherein said second means for generating a merged lookup table comprises: (1) fourth means for generating first and second lookup tables from said first and second debug data structures; (2) fifth means for matching said first and second lookup tables so that entries in said first lookup table having corresponding entries in said second lookup table; and (3) sixth means for copying portions of said compiler debug information from said second lookup table to said first lookup table, wherein said first lookup table comprises said merged lookup table.
Claim 28
Independent Claim 123 words
A method for merging translator debug information and compiler debug information to form final debug information for a source code, adapted for use with an object code of the source code, wherein said final debug information completely and accurately represents the source code, the method comprising the steps of: (a) reading said translator and compiler debug information; (b) generating first and second debug data structures from said translator and compiler debug information; (c) generating a merged lookup table from said first and second debug data structures, wherein said merged lookup table comprises said final debug information; and (d) storing said object code and said final debug information in an object code file, wherein said object code file includes an object code file header.
Claim 29
Independent Claim 123 words
A method for merging translator debug information and compiler debug information to form final debug information for a source code, adapted for use with an object code of the source code, wherein said final debug information completely and accurately represents the source code, the method comprising the steps of: (a) reading said translator and compiler debug information; (b) generating first and second debug data structures from said translator and compiler debug information; (c) generating a merged lookup table from said first and second debug data structures, wherein said merged lookup table comprises said final debug information; and (d) storing said object code and said final debug information in an object code file, wherein said object code file includes an object code file header.
Claim 30
Dependent Claim 108 words
The method of claim 24, wherein said step for generating a merged lookup table comprises the steps of: (a) generating first and second lookup tables from said first and second debug data structures; (b) matching said first and second lookup tables so that entries in said first lookup table have corresponding entries in said second lookup table; (c) copying portions of said compiler debug information from said second lookup table to said first lookup table; (d) marking entries in said first lookup table for deletion; and (e) deleting said entries marked for deletion in said first lookup table; wherein said first lookup table comprises said merged lookup table.
Claim 31
Dependent Claim 38 words
The method of claim 25, wherein the step for matching comprises the steps of: (a) reducing said first and second lookup tables to their most compact form; and (b) performing a depth-first traversal of said first lookup table.
Claim 32
Dependent Claim 67 words
The method of claim 24, wherein the step for storing comprises the steps of: (a) opening said object code file for writing; (b) defining a header area in said object code file; (c) storing said object code and said information from said merged lookup table in said object code file, outside of said header area; and (d) storing said object code file header in said header area.

References Cited (Backward Citations)

US4463423A Cited
US4686623A Cited
US4821181A Cited
US4827404A Cited
US4860203A Cited
US4809170A Cited
US4953084A Cited
US4916610A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-09-24 2000-03-25 2000-09-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-09-24 2004-03-25 2004-09-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-09-24 2008-03-25 2008-09-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag