IP Library Granted Patent US 7,007,198
Granted Patent B2
US 7,007,198 · App. 10/198,836 · Granted Feb 28, 2006

Method for handling exceptions of applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,007,198
App. No.
10/198,836
Granted
Feb 28, 2006
Kind
B2
Abstract

An exception handling system and method for PC-mapped systems. A support library containing language-independent functions is used to raise exceptions. These functions then use language-dependent callback functions to make inquiries about the stack frames built by the language-dependent code, and to further make callbacks to language-dependent functions to clean up those stack frames. The support library works its way up the function call stack from where an exception was issued, searching for function frames that are interested in the exception. An unwind phase is begun when a function frame that is interested in the exception is found. In the unwind phase, the unwinder attempts to unwind the stack up to the interested frame, restoring callee-saved register values, and other pertinent processor-specific information, such as the stack pointer, and frame register. The unwinder then transfers control to the handler code specified by the interested function. The search and unwind phases locate all the information required to tear apart the stack frames laid down at the time the exception is raised. This unwind information is recorded in a compact format. Additionally, no relocations are required in the unwind information. As a result, overall performance of applications at startup time is improved over known PC-mapped exception handling schemes.

Claims (20)

1. A method of handling an exception of an application and unwinding any stack frame in the application comprising the steps of:

generating a map of function locations;

generating unwind information for at least one function prior to execution of the application;

capturing an exception location, the exception location being a location at which an exception occurs;

determining an exception function by looking up the exception location in the map, the exception function being a function in which the exception occurred;

obtaining unwind information for the exception function;

decoding the unwind information to determine a location of register contents;

obtaining the register contents; and

restoring at least one register with the register contents.

2. The method of claim 1 wherein the unwind information includes a header, the header including at least one of the following:

a flag for indicating whether a register has been saved;

a flag for indicating whether the function has a formal stack frame;

a flag for indicating whether the function is interested in the exception;

a flag for indicating whether the unwind information includes location information for a saved register; and

a flag for indicating whether the function pops any contents off of a stack upon return.

3. The method of claim 2 , wherein the unwind information includes further information, the further information including at least one of the following:

location information for the saved register; and

a quantity of content popped-off of the stack upon return.

4. The method of claim 2 , wherein the further information is encoded using arithmetic compression.

5. The method of claim 2 , wherein the further information includes at least one stack pointer modification value and a corresponding code offset value.

Assignments (8)
SECOND LIEN SECURITY AGREEMENT Recorded Oct 14, 2015
From: IDERA, INC.; CODEGEAR LLC; EMBARCADERO TECHNOLOGIES, INC.; COPPEREGG CORPORATION; PRECISE SOFTWARE SOLUTIONS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 036863/0137 →
FIRST LIEN SECURITY AGREEMENT Recorded Oct 13, 2015
From: IDERA, INC.; CODEGEAR LLC; EMBARCADERO TECHNOLOGIES, INC.; COPPEREGG CORPORATION; PRECISE SOFTWARE SOLUTIONS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 036842/0410 →
RELEASE OF SECURITY INTEREST Recorded Oct 12, 2015
From: WELLS FARGO CAPITAL FINANCE, LLC (FORMERLY KNOWN AS WELLS FARGO CAPITAL FINANCE, INC. AND WELLS FARGO FOOTHILL, INC.)
To: CODEGEAR LLC
Reel/Frame 036771/0305 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jan 3, 2013
From: WELLS FARGO CAPITAL FINANCE, INC., FORMERLY KNOWN AS WELLS FARGO FOOTHILL, INC., AS GRANTEE
To: CODEGEAR LLC
Reel/Frame 029566/0144 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded May 13, 2009
From: CODEGEAR LLC
To: WELLS FARGO FOOTHILL, INC., AS AGENT
Reel/Frame 022678/0240 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded May 13, 2009
From: CODEGEAR LLC
To: WELLS FARGO FOOTHILL, INC., AS AGENT
Reel/Frame 022678/0250 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2008
From: BORLAND SOFTWARE CORPORATION
To: CODEGEAR LLC
Reel/Frame 021118/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2005
From: BOLING, ELI; JAZDZEWSKI, CHARLES P.
To: BORLAND SOFTWARE CORPORATION
Reel/Frame 017109/0373 →