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

Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution

Assignee: Apple Inc
•
Filing: 1995-11-13
•
Granted: 1998-09-22
•
Expires: 2015-11-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A human oriented object programming system provides an interactive and dynamic process for debugging computer programs which facilitates the development of complex computer programs such as operating systems and large applications with graphic user interfaces (GUIs). The debugging system uses a database of information relating machine executable code to source code. The database is developed during the compilation process using an extensible object-oriented set of tools. The tools standardize the information developed during compilation into an information format which the debugging system can utilize to provide the user with a powerful source code view of the corresponding executing code.

Inventors

  • 👤 Michael D. Wimble

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 08:04
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3624

Claims Analysis

Total Claims: 69
Claim 1
Independent Claim 176 words
An apparatus for use on a computer system having an operating system thereon, the apparatus controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the apparatus comprising: (a) a database creator which is responsive to the debugging information for creating an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) a plurality of software model objects modeling the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) a debugger engine which is responsive to the state data generated by the plurality of software model objects for examining the information database to control the computer to selectively execute the executable program.
Claim 2
Independent Claim 176 words
An apparatus for use on a computer system having an operating system thereon, the apparatus controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the apparatus comprising: (a) a database creator which is responsive to the debugging information for creating an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) a plurality of software model objects modeling the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) a debugger engine which is responsive to the state data generated by the plurality of software model objects for examining the information database to control the computer to selectively execute the executable program.
Claim 3
Dependent Claim 38 words
The apparatus of claim 1, wherein said information database comprises at least one instruction map comprising one or more instruction map entries for mapping at least one executable code line to one or more source code line selections.
Claim 4
Dependent Claim 29 words
The apparatus of claim 1, wherein said information database comprises instruction index range information for providing information regarding an range of source code lines associated with a map entry.
Claim 5
Dependent Claim 25 words
The apparatus of claim 1, wherein said information database comprises source reference information for providing information regarding source code lines associated with a map entry.
Claim 6
Dependent Claim 23 words
The apparatus of claim 4, wherein said source reference information comprises information defining source references in terms of portions of source code lines.
Claim 7
Dependent Claim 21 words
The apparatus of claim 1, wherein said information database comprises data optimization annotation for providing information regarding implications of code optimization.
Claim 8
Dependent Claim 13 words
The apparatus of claim 6, wherein said data optimization annotation indicates shared lifetime.
Claim 9
Dependent Claim 12 words
The apparatus of claim 6, wherein said data optimization annotation indicates constraint.
Claim 10
Dependent Claim 14 words
The apparatus of claim 6, wherein said data optimization annotation indicates inline expansion optimization.
Claim 11
Dependent Claim 21 words
The apparatus of claim 1, wherein said information database comprises code optimization annotation for providing information regarding implications of code optimization.
Claim 12
Dependent Claim 18 words
The apparatus of claim 1, wherein said information database comprises attribute information for providing information regarding source position.
Claim 13
Dependent Claim 15 words
The apparatus of claim 11, wherein said informat ion regarding source position comprises function information.
Claim 14
Dependent Claim 15 words
The apparatus of claim 11, wherein said information regarding source position comprises frame construction information.
Claim 15
Dependent Claim 15 words
The apparatus of claim 11, wherein said information regarding source position comprises characteristic location information.
Claim 16
Dependent Claim 38 words
The apparatus of claim 1, wherein the compiler and the linker comprise information providers and wherein the apparatus further comprises an adopt function for asking the database creator to adopt a format of information of an information provider.
Claim 17
Dependent Claim 36 words
The apparatus of claim 1, wherein said information database comprises at least one token map comprising one or more token map entries for mapping a token from token map entry to a source code line selection.
Claim 18
Dependent Claim 22 words
The apparatus of claim 1, wherein said information database comprises at least one source reference for defining a source of a token.
Claim 19
Dependent Claim 22 words
The apparatus of claim 1, wherein said information database comprises at least one kind indicator for defining a kind of a token.
Claim 20
Dependent Claim 29 words
The apparatus of claim 1, wherein said information database comprises at least one data indicator for defining an entry into a type map which defines a type of token.
Claim 21
Dependent Claim 28 words
The apparatus of claim 1, wherein said information database comprises at least one data indicator for defining an entry into a data map entry associated with a token.
Claim 22
Dependent Claim 34 words
The apparatus of claim 1, wherein said information database comprises at least one statement map comprising one or more statement map entries for mapping source code lines to a hierarchy of semantic statement elements.
Claim 23
Dependent Claim 23 words
The apparatus of claim 1, wherein said information database comprises at least one source reference for defining a source of a statement element.
Claim 24
Dependent Claim 23 words
The apparatus of claim 1, wherein said information database comprises at least one kind indicator for defining a kind of a statement element.
Claim 25
Dependent Claim 23 words
The apparatus of claim 1, wherein said information database comprises at least one parent indicator for defining a parent of a statement element.
Claim 26
Dependent Claim 26 words
The apparatus of claim 1, wherein said information database comprises at least one breakpoint indicator for defining one or more breakpoints related to a statement element.
Claim 27
Dependent Claim 31 words
The apparatus of claim 1, wherein said information database comprises at least one data map comprising data map entries for mapping data variable locations to one or more source code lines.
Claim 28
Dependent Claim 26 words
The apparatus of claim 1, wherein said information database comprises at least one variable indicator for defining a variable in one of the source code lines.
Claim 29
Dependent Claim 29 words
The apparatus of claim 1, wherein said information database comprises at least one source reference for defining a source of a data object defined by an associated map entry.
Claim 30
Dependent Claim 16 words
The apparatus of claim 28, wherein said source reference comprises at least one range of characters.
Claim 31
Dependent Claim 18 words
Th e apparatus of claim 28, wherein said source reference comprises at least one set of character ranges.
Claim 32
Dependent Claim 21 words
The apparatus of claim 28, wherein said source reference comprises at least one reference to a token in a token map.
Claim 33
Dependent Claim 16 words
The apparatus of claim 28, wherein said source reference comprises at least one set of tokens.
Claim 34
Dependent Claim 20 words
The apparatus of claim 28, wherein said source reference comprises at least one range of entries in a token map.
Claim 35
Dependent Claim 44 words
The apparatus of claim 1, wherein said information database comprises at least one live location reference for defining a formula which, when used in a context of an executing program, specifies a data location of a data object defined by an associated map entry.
Claim 36
Dependent Claim 14 words
The apparatus of claim 34, wherein said live location reference comprises an absolute address.
Claim 37
Dependent Claim 15 words
The apparatus of claim 34, wherein said live location reference comprises a program component reference.
Claim 38
Dependent Claim 14 words
The apparatus of claim 34, wherein said live location reference comprises a register reference.
Claim 39
Dependent Claim 26 words
The apparatus of claim 1, wherein said information database comprises at least one accessing formula defining a value at an address associated with a map entry.
Claim 40
Dependent Claim 28 words
The apparatus of claim 38, wherein said accessing formula comprises at least one read accessing formula for defining how to read a value associated with a map entry.
Claim 41
Dependent Claim 28 words
The apparatus of claim 38, wherein said accessing formula comprises at least one write accessing formula for defining how to create a value associated with a map entry.
Claim 42
Dependent Claim 17 words
The apparatus of claim 38, wherein said accessing formula comprises information defining a value at an address.
Claim 43
Dependent Claim 20 words
The apparatus of claim 38, wherein said accessing formula comprises information defining a variable embedded in value at location specified.
Claim 44
Dependent Claim 26 words
The apparatus of claim 38, wherein said accessing formula comprises information defining an operator applied to left and right access formula to create new access formula.
Claim 45
Dependent Claim 23 words
The apparatus of claim 38, wherein said accessing formula comprises information defining an operator applied to access formula to create new access formula.
Claim 46
Dependent Claim 32 words
The apparatus of claim 38, wherein said accessing formula comprises information defining an address of a unary operator which is applied to access formula to derive a value which is a variable.
Claim 47
Dependent Claim 23 words
The apparatus of claim 38, wherein said accessing formula is implied by either a token map entry or an address of a variable.
Claim 48
Dependent Claim 17 words
The apparatus of claim 38, wherein said accessing formula comprises a reference to a self-defining literal value.
Claim 49
Dependent Claim 20 words
The apparatus of claim 42, wherein said accessing formula comprises a reference to a value directly located at an address.
Claim 50
Dependent Claim 39 words
The apparatus of claim 42, wherein said accessing formula comprises a formula describing a condition wherein a value contained in a location in such a way that the value is too complex to describe how to extract the value.
Claim 51
Dependent Claim 44 words
The apparatus of claim 1 wherein the information database comprises instruction maps containing instruction map entries defining particular relationships between the source code lines and the executable code lines and data maps containing data map entries having methods therein for accessing data variable locations.
Claim 52
Dependent Claim 33 words
The apparatus of claim 50 wherein the instruction map entries comprise a plurality of software code objects, the software code objects having data and software code therein for identifying selected source code lines.
Claim 53
Dependent Claim 32 words
The apparatus of claim 1 wherein the data map entries comprise a plurality of software code objects, the software code objects having data and software code therein for locating selected data variables.
Claim 54
Dependent Claim 23 words
The apparatus of claim 1 wherein the software model objects include a software model object for modeling the state of the executable program.
Claim 55
Dependent Claim 33 words
The apparatus of claim 1 wherein the software model objects include a software model object for modeling an instruction set used in the computer and operating system services used by the executable program.
Claim 56
Independent Claim 171 words
A method for use on a computer system having an operating system thereon, the method controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the method comprising the steps of: (a) using the debugging information to create an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) constructing a plurality of software model objects to model the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) using the state data generated by the plurality of software model objects and information extracted from the information database to control the computer to selectively execute the executable program.
Claim 57
Independent Claim 171 words
A method for use on a computer system having an operating system thereon, the method controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the method comprising the steps of: (a) using the debugging information to create an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) constructing a plurality of software model objects to model the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) using the state data generated by the plurality of software model objects and information extracted from the information database to control the computer to selectively execute the executable program.
Claim 58
Dependent Claim 48 words
The method of claim 55 wherein step (a) comprises the steps of: (a1) creating instruction maps containing instruction map entries defining particular relationships between the source code lines and the executable code lines and data maps containing data map entries having methods therein for accessing data variable locations.
Claim 59
Dependent Claim 40 words
The method of claim 56 wherein step (a1) comprises the step of: (a1a) creating instruction map entries comprising a plurality of software code objects, the software code objects having data and software code therein for identifying selected source code lines.
Claim 60
Dependent Claim 39 words
The method of claim 56 wherein step (a1) comprises the step of: (a1b) creating data map entries comprising a plurality of software code objects, the software code objects having data and software code therein for locating selected data variables.
Claim 61
Dependent Claim 26 words
The method of claim 55 wherein step (b) comprises the step of: (b1) creating a software model object for modeling the state of the executable program.
Claim 62
Dependent Claim 36 words
The method of claim 55 wherein step (b) comprises the step of: (b2) creating a software model object for modeling an instruction set used in the computer and operating system services used by the executable program.
Claim 63
Dependent Claim 206 words
A computer program product for use on a computer system having a memory and an operating system, the computer program product controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the computer program product comprising a computer usable medium having computer readable program code thereon including: (a) program code which uses the debugging information to create in the memory an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) program code for constructing in the memory a plurality of software model objects to model the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) program code loadable into the memory which uses the state data generated by the plurality of software model objects and information extracted from the information database to control the computer to selectively execute the executable program.
Claim 64
Dependent Claim 206 words
A computer program product for use on a computer system having a memory and an operating system, the computer program product controlling an executable program having executable code lines created by processing source code lines with a compiler to generate object code modules and linking the object code modules with a linker, wherein the compiler and the linker generate debugging information during processing, the computer program product comprising a computer usable medium having computer readable program code thereon including: (a) program code which uses the debugging information to create in the memory an information database containing a plurality of map entries defining particular relationships between the source code lines and the executable code lines and methods for accessing data variable locations; (b) program code for constructing in the memory a plurality of software model objects to model the executable program and the operating system, the software model objects containing data and code therein for generating state data concerning the state of the executable program and the operating system; and (c) program code loadable into the memory which uses the state data generated by the plurality of software model objects and information extracted from the information database to control the computer to selectively execute the executable program.
Claim 65
Dependent Claim 56 words
The computer program product of claim 61 wherein the program code which creates the information database creates in the memory instruction maps containing instruction map entries defining particular relationships between the source code lines and the executable code lines and further creates data maps containing data map entries having methods therein for accessing data variable locations.
Claim 66
Dependent Claim 42 words
The computer program product of claim 62 wherein the program which creates the instruction map entries creates in the memory a plurality of software code objects, the software code objects having data and software code therein for identifying selected source code lines.
Claim 67
Dependent Claim 41 words
The computer program product of claim 62 wherein the program which creates the data map entries creates in the memory a plurality of software code objects, the software code objects having data and software code therein for locating selected data variables.
Claim 68
Dependent Claim 30 words
The computer program product of claim 61 wherein the program code which creates the software model objects creates a software model object for modeling the state of the executable program.
Claim 69
Dependent Claim 40 words
The computer program product of claim 61 wherein the program code which creates the software model objects creates a software model object for modeling an instruction set used in the computer and operating system services used by the executable program.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-09-21 2002-03-23 2002-09-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-09-21 2006-03-23 2006-09-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-09-21 2010-03-23 2010-09-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag