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

Debugging optimized code using data change points

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1995-12-22
•
Granted: 2000-07-18
•
Expires: 2015-12-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A software development system with improved facilities for debugging optimized code. Certain parts of the operations specified by source statements are categorized as "data change points". A compiler 102 identifies the correspondence between the machine instructions that perform data change point operations and the source statements from which these machine instructions were derived and stores this mapping data 110 for use by a debugger program 104. This source code/machine instruction mapping data is used by the debugger to permit users to specify machine instruction locations (such as for setting breakpoints) by identifying a source statement and specifying that the debugger use the data change point of that statement; as another example, the step command includes an option that permits a user to continue execution until the next data change point instruction is reached. The debugger's source code display (FIGS. 5A and 5B) is also adapted to take advantage of the data change point mapping data: a user can request that the debugger highlight source statements for which the data change point instruction has executed; in marking the source display to indicate the location of the current execution point, the debugger can also show whether the next instruction to execute will be a data change point instruction.

Inventors

  • 👤 Donald L. Curreri
  • 👤 Arun K. Iyengar
  • 👤 Russell A. Biesele
  • 👤 Michelle A. Ruscetta

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 14:21
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F11/362; G06F11/3628

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 158 words
A software development system comprising: (A) a mapping data structure for storing data identifying correspondences between portions of source code and machine instructions of a program, and including data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) a compiler that identifies machine instructions that are data change points of portions of source code and stores data in the mapping data structure that identifies such correspondences between machine instructions that are data change point instructions and the portions of source code to which they correspond; and (C) a debugger that retrieves data from the mapping data structure, including the data identifying data change point instructions, and uses that data to control execution of the program such that, in response to a command from a user of the debugger, execution of the program is stopped at a data change point instruction.
Claim 2
Dependent Claim 158 words
A software development system comprising: (A) a mapping data structure for storing data identifying correspondences between portions of source code and machine instructions of a program, and including data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) a compiler that identifies machine instructions that are data change points of portions of source code and stores data in the mapping data structure that identifies such correspondences between machine instructions that are data change point instructions and the portions of source code to which they correspond; and (C) a debugger that retrieves data from the mapping data structure, including the data identifying data change point instructions, and uses that data to control execution of the program such that, in response to a command from a user of the debugger, execution of the program is stopped at a data change point instruction.
Claim 3
Dependent Claim 59 words
The software development system of claim 1 wherein the debugger provides a mechanism for setting a breakpoint at a data change point instruction in response to a command by a user of the debugger in which the user specifies a portion of the source code and specifies that a breakpoint should be set at a data change point instruction.
Claim 4
Dependent Claim 26 words
The software development system of claim 1 wherein the debugger provides a mechanism for stepping execution of the program to the next data change point instruction.
Claim 5
Dependent Claim 37 words
The software development system of claim 1 wherein the debugger includes means for displaying source code of the program and for highlighting portions of the source code for which the corresponding data change point instructions have executed.
Claim 6
Dependent Claim 100 words
A debugger comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for controlling execution of the program such that, in response to a command from a user of the debugger, the data identifying data change point instructions is used so that execution of the program is stopped at a data change point instruction.
Claim 7
Dependent Claim 100 words
A debugger comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for controlling execution of the program such that, in response to a command from a user of the debugger, the data identifying data change point instructions is used so that execution of the program is stopped at a data change point instruction.
Claim 8
Dependent Claim 79 words
The debugger of claim 5 further comprising: (C) user interface means by which a user can identify a portion of source code of a program and can select a type of breakpoint, the type being one of a plurality of predetermined breakpoint types; (D) means responsive to a user's selection of a particular one of the breakpoint types to set a breakpoint on a machine instruction that is the data change point for the identified portion of source code.
Claim 9
Dependent Claim 30 words
The debugger of claim 5 wherein the means for controlling execution of the program includes a mechanism for stepping execution of the program to the next data change point instruction.
Claim 10
Dependent Claim 92 words
A debugger comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for displaying source code of the program and for using the data identifying data change point instructions to highlight portions of the source code for which the corresponding data change point instructions have executed.
Claim 11
Dependent Claim 92 words
A debugger comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for displaying source code of the program and for using the data identifying data change point instructions to highlight portions of the source code for which the corresponding data change point instructions have executed.
Claim 12
Dependent Claim 30 words
The debugger of claim 8 further comprising means for removing the highlighting in response to a command by a user of the debugger to remove executed data change point highlighting.
Claim 13
Dependent Claim 105 words
A software development tool comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for controlling execution of the program so as to be able to collect data about the program's execution; (C) means for using the data identifying data change point instructions in the collection and storage of data about the program's execution of data change point instructions.
Claim 14
Dependent Claim 105 words
A software development tool comprising: (A) means for receiving data identifying correspondences between portions of source code of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) means for controlling execution of the program so as to be able to collect data about the program's execution; (C) means for using the data identifying data change point instructions in the collection and storage of data about the program's execution of data change point instructions.
Claim 15
Dependent Claim 130 words
A compiler comprising: (A) means for receiving a source code representation of a program defining an abstract machine; (B) means for translating the source code representation into a second representation of the program, the second representation defining translated instructions for implementing the abstract machine on a pre-existing machine; (C) to identify correspondences between translated instructions and portions of the source code representation; (D) means for identifying particular translated instructions that change the state of the abstract machine; (E) means for generating data identifying correspondences between portions of the source code representation and the translated instructions, and data identifying, out of a plurality of machine instructions that correspond to a portion of the source code representation, those particular translated instructions that were identified as changing the state of the abstract machine.
Claim 16
Dependent Claim 130 words
A compiler comprising: (A) means for receiving a source code representation of a program defining an abstract machine; (B) means for translating the source code representation into a second representation of the program, the second representation defining translated instructions for implementing the abstract machine on a pre-existing machine; (C) to identify correspondences between translated instructions and portions of the source code representation; (D) means for identifying particular translated instructions that change the state of the abstract machine; (E) means for generating data identifying correspondences between portions of the source code representation and the translated instructions, and data identifying, out of a plurality of machine instructions that correspond to a portion of the source code representation, those particular translated instructions that were identified as changing the state of the abstract machine.
Claim 17
Dependent Claim 39 words
The compiler of claim 11 wherein the compiler includes means for identifying a plurality of different types of correspondences between instructions and portions of source code, and wherein the generated mapping data indicates the type of each identified correspondence.
Claim 18
Dependent Claim 78 words
The compiler of claim 11 wherein the source code is expressed in a statement-oriented language and the identified portions of source code are statements, wherein the instructions that change the state of the abstract machine are known as data change point instructions, and wherein, even for a statement from which more than one data change point instruction is derived, the compiler generates mapping data for at most one correspondence between such statement and a data change point instruction.
Claim 19
Dependent Claim 137 words
A computer-readable memory configured so that it can be used to direct a computer: (A) to receive a source code representation of a program defining an abstract machine; (B) to translate the source code representation into a second representation of the program, the second representation defining translated instructions for implementing the abstract machine on a pre-existing machine; (C) to identify correspondences between translated instructions and portions of the source code representation; (D) to identify particular translated instructions that change the state of the abstract machine; (E) to generate data identifying correspondences between portions of the source code representation and the translated instructions, and data identifying, out of a plurality of machine instructions that correspond to a portion of the source code representation, those particular translated instructions that were identified as changing the state of the abstract machine.
Claim 20
Dependent Claim 137 words
A computer-readable memory configured so that it can be used to direct a computer: (A) to receive a source code representation of a program defining an abstract machine; (B) to translate the source code representation into a second representation of the program, the second representation defining translated instructions for implementing the abstract machine on a pre-existing machine; (C) to identify correspondences between translated instructions and portions of the source code representation; (D) to identify particular translated instructions that change the state of the abstract machine; (E) to generate data identifying correspondences between portions of the source code representation and the translated instructions, and data identifying, out of a plurality of machine instructions that correspond to a portion of the source code representation, those particular translated instructions that were identified as changing the state of the abstract machine.
Claim 21
Dependent Claim 45 words
The computer-readable memory of claim 14 wherein the memory is further configured to direct a computer to identify a plurality of different types of correspondences between instructions and portions of source code, and wherein the generated mapping data indicates the type of each identified correspondence.
Claim 22
Dependent Claim 78 words
The computer-readable memory of claim 14 wherein the source code is expressed in a statement-oriented language and the identified portions of source code are statements, wherein the instructions that change the state of the abstract machine are known as data change point instructions, and wherein, even for a statement from which more than one data change point instruction is derived, the generated mapping data includes at most one correspondence between such statement and a data change point instruction.
Claim 23
Dependent Claim 111 words
A computer-readable memory configured so that it can be used to direct a computer: (A) to receive data identifying correspondences between portions of a source code representation of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) to control execution of the program such that, in response to a command from a user of the computer, the data identifying data change point instructions is used so that execution of the program is stopped at a data change point instruction.
Claim 24
Dependent Claim 111 words
A computer-readable memory configured so that it can be used to direct a computer: (A) to receive data identifying correspondences between portions of a source code representation of a program and machine instructions in a translated representation of the program, and data identifying, out of a plurality of machine instructions that correspond to a portion of source code, those particular machine instructions that are data change point instructions; (B) to control execution of the program such that, in response to a command from a user of the computer, the data identifying data change point instructions is used so that execution of the program is stopped at a data change point instruction.
Claim 25
Dependent Claim 94 words
The computer-readable memory of claim 17 wherein the memory is further configured to direct a computer: (C) to present a user of the computer with means by which the user can identify a portion of source code of the program and can select a type of breakpoint, the type being one of a plurality of predetermined breakpoint types; (D) to respond to the user's selection of a particular one of the breakpoint types to set a breakpoint on a machine instruction that is the data change point for the identified portion of source code.
Claim 26
Dependent Claim 48 words
The computer-readable memory of claim 17 wherein the memory is further configured to direct a computer to control execution of the program such that, in response to a command from a user of the computer, execution of the program is stepped to the next data change point instruction.
Claim 27
Dependent Claim 41 words
The computer-readable memory of claim 17 wherein the memory is further configured to direct a computer to display source code of the program and to highlight portions of the source code for which the corresponding data change point instructions have executed.

References Cited (Backward Citations)

US5652909A Cited
US5191646A Cited
US4953084A Cited
US5339431A Cited
US5301198A Cited
US5265254A Cited
US5371747A Cited
US5446900A Cited
US5555419A Cited
US5533192A Cited
US5812850A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag