Patent US256065A successfully refreshed from Google Patents.
Patent US6507572B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6151701A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for reconstructing debugging information for a decompiled executable file

Assignee: AHPAH Software Inc
•
Filing: 1998-09-28
•
Granted: 2000-11-21
•
Expires: 2018-09-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A debugging system according to the present invention includes a decompiler that provides information to a table generator, which generates a line number map and a symbol table, each of which corresponds to an executable file being decompiled. In a specific embodiment, hooks into specific operations performed by the decompiler trigger the table generator operation. A debugging information program can be hooked into a decompiler to generate the debugging information and modify the source code output by the decompiler. For example, the program can be hooked into the decompiler to monitor when the decompiler inserts or deletes source statements, generates line numbers for source lines, or assigns variable names to variables encountered in the executable code.

Inventors

  • 👤 Greg Humphreys
  • 👤 Paul J. Martino

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 14:12
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/53; G06F11/00; G06F11/36; G06F11/362

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 224 words
A decompiler for decompiling target executable code into target source code with debugging information, wherein executable code comprises a plurality of instructions for a particular computing environment and source code comprises a plurality of instructions in a form readable by programmers, and wherein the target executable code is a result of compiling initial source code, the decompiler comprising: source generation means for generating one or more source statements of the target source code from one or more instructions of the target executable code, wherein the one or more source statements are such that a compiler for the particular computing environment would compile the one or more source statements into the one or more instructions of the target executable code, or functionally equivalent instructions which are functionally equivalent to the one or more instructions of the target executable code, wherein the source generation means includes hooks for incorporating additional functionality at a plurality of hook points in the source generation means; and means for generating debugging information independent of the initial source code, the debugging information being information about source code that would correspond to the target executable code, wherein the means for generating debugging information comprises additional functionality hooked at the plurality of hook points to generate the debugging information in response to the decompiler processing through each of the plurality of hook pints.
Claim 2
Dependent Claim 224 words
A decompiler for decompiling target executable code into target source code with debugging information, wherein executable code comprises a plurality of instructions for a particular computing environment and source code comprises a plurality of instructions in a form readable by programmers, and wherein the target executable code is a result of compiling initial source code, the decompiler comprising: source generation means for generating one or more source statements of the target source code from one or more instructions of the target executable code, wherein the one or more source statements are such that a compiler for the particular computing environment would compile the one or more source statements into the one or more instructions of the target executable code, or functionally equivalent instructions which are functionally equivalent to the one or more instructions of the target executable code, wherein the source generation means includes hooks for incorporating additional functionality at a plurality of hook points in the source generation means; and means for generating debugging information independent of the initial source code, the debugging information being information about source code that would correspond to the target executable code, wherein the means for generating debugging information comprises additional functionality hooked at the plurality of hook points to generate the debugging information in response to the decompiler processing through each of the plurality of hook pints.
Claim 3
Dependent Claim 42 words
The decompiler of claim 1, wherein the debugging information includes a line number map, which maps line numbers between the target executable code and the target source code, and a symbol table, which maps source data element names to executable data elements.
Claim 4
Dependent Claim 87 words
The decompiler of claim 1, wherein the plurality of hook points include at least: a first hook that is executed when the source generation means generates one or more source statements of the target source code from one or more instructions of the target executable code; a second hook that is executed when the source generation means deletes a source statement of the target source code; and a third hook that is executed when the source generation means inserts a source statement of the target source code.
Claim 5
Dependent Claim 63 words
The decompiler of claim 3, wherein the plurality of hook points further comprise: a fourth hook that is executed when the source generation means generates a nonstatement line of source text in the target source code; and a fifth hook that is executed when the source generation means assigns a source data element name to data element encountered in the target executable code.
Claim 6
Dependent Claim 29 words
The decompiler of claim 4, wherein the additional functionality added at the fourth hook includes logic to add line numbering for nonstatement lines where indicated by a readability format.
Claim 7
Dependent Claim 31 words
The decompiler of claim 1, further comprising means for organizing the target source code and the debugging information into a class file in a format expected by a class file debugger.
Claim 8
Dependent Claim 29 words
The decompiler of claim 1, wherein the target executable code comprises one or more executable code files and the target source code comprises one or more source code files.
Claim 9
Dependent Claim 21 words
The decompiler of claim 1, wherein the target executable code comprises instructions that are native instructions for a particular computing environment.
Claim 10
Dependent Claim 31 words
The decompiler of claim 1, wherein the target executable code comprises a plurality of instructions which are in an intermediate form readily convertible into native instructions for a particular computing environment.
Claim 11
Dependent Claim 12 words
The decompiler of claim 1, wherein the target source code includes comments.

References Cited (Backward Citations)

US5287548A Cited
US5560009A Cited
US5193180A Cited
US5740444A Cited
US5559884A Cited
US5630049A Cited
US5732273A Cited
US5881288A Cited
US5940617A Cited
US6014516A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-11-21 2004-05-22 2004-11-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-11-21 2008-05-22 2008-11-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-11-21 2012-05-22 2012-11-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag