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

Computer program debugging system and method

Assignee: Apple Inc
•
Filing: 1994-04-21
•
Granted: 1996-07-02
•
Expires: 2014-04-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A program debugging system has a core unit that includes a plurality of debugger memory areas, each uniquely associated with a corresponding one of a plurality of debuggers. The core unit responds to an exception condition by selecting one debugger from the plurality of debuggers, selection being made by determining which one of the debuggers is associated with the program exception. Then, computer state information and debugger state information are stored into a selected one of the debugger memory areas that is exclusively associated with the selected debugger, and the selected debugger is activated. A new debugger may register with the core unit, so that the new debugger is added to the plurality of debuggers. The activated debugger may send a debugging command to the core unit, which responds by updating debugger state information based on the received debugging command, and storing the updated debugger state information into the selected debugger memory area. When a debugger relinquishes control of the computer, the core unit retrieves the updated debugger state information from the selected debugger memory area, and controls the hardware resources in accordance therewith. If the updated debugger state information includes an indication that a breakpoint is set, the core unit sets a breakpoint that includes information associating the set breakpoint with the selected debugger. When the breakpoint is triggered, the core unit identifies from the breakpoint information which of the debuggers the breakpoint is associated with, and activates the identified debugger.

Inventors

  • 👤 Robert J. Hawley
  • 👤 Patricia A. Jemie

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 14:04
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 133 words
In a program debugging system for debugging a program, a debugger core unit comprising: a plurality of debugger memory areas, each exclusively associated with a corresponding one of a plurality of debuggers; means, responsive to an exception condition associated with the program, for selecting one debugger from the plurality of debuggers, wherein selection is made by determining which one of the plurality of debuggers is associated with the exception condition; means, coupled to the selecting means, for storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; means, coupled to the selecting means, for storing debugger state information into the selected debugger memory area; and means, coupled to the selecting means, for activating the selected debugger.
Claim 2
Dependent Claim 133 words
In a program debugging system for debugging a program, a debugger core unit comprising: a plurality of debugger memory areas, each exclusively associated with a corresponding one of a plurality of debuggers; means, responsive to an exception condition associated with the program, for selecting one debugger from the plurality of debuggers, wherein selection is made by determining which one of the plurality of debuggers is associated with the exception condition; means, coupled to the selecting means, for storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; means, coupled to the selecting means, for storing debugger state information into the selected debugger memory area; and means, coupled to the selecting means, for activating the selected debugger.
Claim 3
Dependent Claim 26 words
The debugger core unit of claim 1, further comprising means for registering a new debugger, whereby the new debugger is added to the plurality of debuggers.
Claim 4
Dependent Claim 50 words
The debugger core unit of claim 1, further comprising: means for receiving a debugging command from the selected debugger, and wherein the debugger state information storing means updates debugger state information based on the received debugging command, and stores the updated debugger state information into the selected debugger memory area.
Claim 5
Dependent Claim 22 words
The debugger core unit of claim 3, further comprising means for controlling a hardware resource in accordance with the received debugging command.
Claim 6
Dependent Claim 33 words
The debugger core unit of claim 4, wherein the hardware resource controlling means retrieves the updated debugger state information from the selected debugger memory area, and controls the hardware resource in accordance therewith.
Claim 7
Dependent Claim 73 words
The debugger core unit of claim 5, wherein: the updated debugger state information includes an indication that a breakpoint is set at a memory location; and the hardware resource controlling means, in response to the breakpoint indication being included in the updated debugger state information that is stored in the selected debugger memory area, controls the hardware resource by setting a breakpoint that includes information associating the set breakpoint with the selected debugger.
Claim 8
Dependent Claim 24 words
The debugger core unit of claim 6, wherein the breakpoint is alternatively an execution breakpoint, a memory access breakpoint, and a memory modification breakpoint.
Claim 9
Dependent Claim 46 words
The debugger core unit of claim 6, wherein: the received debugging command is a set breakpoint command, and the debugger state information storing means, in response to the received set breakpoint command, updates the debugger state information to include the indication that a breakpoint is set.
Claim 10
Dependent Claim 160 words
In a computer system comprising first and second debuggers, each presenting a corresponding interface to a corresponding user, wherein the user uses each of the interfaces to debug a program by examining and modifying computer state information, a method for operating the computer system so as to have the first and second debuggers concurrently active for debugging the program, comprising the steps of: storing first debugger state information in a first debugger memory area; storing second debugger state information in a second debugger memory area; receiving, from each of the first and second debuggers, primitive service requests to modify the computer state information, and in response thereto storing respective indications of the received primitive service requests in the corresponding first and second debugger memory areas; and in response to the first debugger relinquishing control of the computer system, modifying the computer state in accordance with the indications of the received primitive service requests stored in the first debugger memory area.
Claim 11
Dependent Claim 160 words
In a computer system comprising first and second debuggers, each presenting a corresponding interface to a corresponding user, wherein the user uses each of the interfaces to debug a program by examining and modifying computer state information, a method for operating the computer system so as to have the first and second debuggers concurrently active for debugging the program, comprising the steps of: storing first debugger state information in a first debugger memory area; storing second debugger state information in a second debugger memory area; receiving, from each of the first and second debuggers, primitive service requests to modify the computer state information, and in response thereto storing respective indications of the received primitive service requests in the corresponding first and second debugger memory areas; and in response to the first debugger relinquishing control of the computer system, modifying the computer state in accordance with the indications of the received primitive service requests stored in the first debugger memory area.
Claim 12
Dependent Claim 49 words
The method of claim 9, wherein: at least one of the primitive service requests received from the first debugger includes a request to set a breakpoint; and the step of modifying the computer state comprises setting the breakpoint, and including therein information associating the breakpoint with the first debugger.
Claim 13
Dependent Claim 45 words
The method of claim 10, further comprising the steps of: halting execution of the program in response to execution of the breakpoint; examining the breakpoint information to identify which of the first and second debuggers the breakpoint is associated with; and activating the identified debugger.
Claim 14
Dependent Claim 141 words
In a computer system comprising a plurality of debuggers, each presenting a corresponding interface to a user, wherein the user uses each of the interfaces to debug a computer program by examining and modifying a computer state, a method for debugging the computer program, comprising the steps of: associating each of a plurality of debugger memory areas with a corresponding one of the plurality of debuggers; selecting, in response to an exception condition, one debugger from the plurality of debuggers, wherein selection is made by determining which one of the plurality of debuggers is associated with the exception condition; storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; storing debugger state information into the selected debugger memory area; and activating the selected debugger.
Claim 15
Dependent Claim 141 words
In a computer system comprising a plurality of debuggers, each presenting a corresponding interface to a user, wherein the user uses each of the interfaces to debug a computer program by examining and modifying a computer state, a method for debugging the computer program, comprising the steps of: associating each of a plurality of debugger memory areas with a corresponding one of the plurality of debuggers; selecting, in response to an exception condition, one debugger from the plurality of debuggers, wherein selection is made by determining which one of the plurality of debuggers is associated with the exception condition; storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; storing debugger state information into the selected debugger memory area; and activating the selected debugger.
Claim 16
Dependent Claim 25 words
The method of claim 12, further comprising the step of registering a new debugger, whereby the new debugger is added to the plurality of debuggers.
Claim 17
Dependent Claim 41 words
The method of claim 12, further comprising the steps of: receiving a debugging command from the selected debugger; updating debugger state information based on the received debugging command; and storing the updated debugger state information into the selected debugger memory area.
Claim 18
Dependent Claim 21 words
The method of claim 14, further comprising the step of controlling a hardware resource in accordance with the received debugging command.
Claim 19
Dependent Claim 50 words
The method of claim 15, wherein the step of controlling a hardware resource in accordance with the received debugging command comprises the steps of: retrieving the updated debugger state information from the selected debugger memory area; and controlling the hardware resource in accordance with the retrieved updated debugger state information.
Claim 20
Dependent Claim 83 words
The method of claim 16, wherein: the updated debugger state information includes an indication that a breakpoint is set at a memory location; and the step of controlling the hardware resource in accordance with the retrieved updated debugger state information comprises, in response to the breakpoint indication being included in the updated debugger state information that is stored in the selected debugger memory area, controlling the hardware resource by setting a breakpoint that includes information associating the set breakpoint with the selected debugger.
Claim 21
Dependent Claim 22 words
The method of claim 17, wherein the breakpoint is alternatively an execution breakpoint, a memory access breakpoint, and a memory modification breakpoint.
Claim 22
Dependent Claim 57 words
The method of claim 17, wherein the step of updating debugger state information based on the received debugging command comprises the steps of: determining that the received debugging command is a set breakpoint command; and in response to the received set breakpoint command, updating the debugger state information to include the indication that a breakpoint is set.
Claim 23
Dependent Claim 129 words
In a program debugging system for debugging a program, a debugger core unit comprising: a plurality of debugger memory areas, each exclusively associated with a corresponding one of a plurality of debuggers; means, responsive to a request made by the program, for selecting one debugger from the plurality of debuggers, the selecting means comprising: default means for selecting a default debugger from the plurality of debuggers; means, coupled to the selecting means, for storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; means, coupled to the selecting means, for storing debugger state information into the selected debugger memory area; and means, coupled to the selecting means, for activating the selected debugger.
Claim 24
Dependent Claim 129 words
In a program debugging system for debugging a program, a debugger core unit comprising: a plurality of debugger memory areas, each exclusively associated with a corresponding one of a plurality of debuggers; means, responsive to a request made by the program, for selecting one debugger from the plurality of debuggers, the selecting means comprising: default means for selecting a default debugger from the plurality of debuggers; means, coupled to the selecting means, for storing computer state information into a selected one of the plurality of debugger memory areas, the selected debugger memory area being exclusively associated with the selected debugger; means, coupled to the selecting means, for storing debugger state information into the selected debugger memory area; and means, coupled to the selecting means, for activating the selected debugger.
Claim 25
Dependent Claim 47 words
The debugger core unit of claim 20, wherein the selecting means further comprises means for alternatively outputting as the selected debugger a user preferred one of the plurality of debuggers, and if no user preferred one of the plurality of debuggers exists, then the selected default debugger.

References Cited (Backward Citations)

US4755997A Cited
US4924382A Cited
US4937864A Cited
US5361348A Cited
US5321828A Cited
US5379301A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag