Back to results
US 2008/0270990 A1Published application
Unwinding unwindable code
AssigneeMicrosoft Corporation
InventorLeif Kornstaedt
Life of this patent
Estimating the term…
Abstract
Unwinding may take place in an annotated unwinding environment with non-annotated code by placing a context frame between a first annotated function and non-annotated function and an unwind thunk between the non-annotated function and a second annotated function. The unwind thunk may redirect an unwind function to the context frame so that an unwind process may continue across a non-annotated function.
Claims20
A method comprising:
- pushing a first annotated function onto a call stack;
- saving a first context for said first annotated function;
- pushing a first non-annotated function onto said call stack pushing an unwind thunk onto said call stack;
- pushing a second annotated function onto said call stack;
- and
- unwinding said call stack by a method comprising:
- unwinding said second annotated function;
- detecting said unwind thunk;
- jumping to said first context;
- and
- unwinding said first annotated function.
8 more elements
A system comprising:
- a first annotated function;
- a second annotated function;
- first non-annotated function;
- a runtime system adapted to:
- call said first annotated function;
- save a context for said first annotated function;
- call said first non-annotated function;
- save an unwind thunk, said unwind thunk comprising a pointer to said first context;
- and
- call said second annotated function;
- said runtime system further adapted to perform an unwind method comprising:
- unwinding said second annotated function;
- detecting said unwind thunk;
- jumping to said first context;
- and
- unwinding said first annotated function.
13 more elements
A method comprising:
- inserting a context frame between a first annotated function in a call stack and at least one non-annotated function;
- inserting an unwind thunk between said at least one non-annotated function and a second annotated function in said call stack;
- unwinding said call stack by a process comprising:
- unwinding said second annotated function;
- detecting said unwind thunk;
- and
- jumping to said context frame.
4 more elements
Dependencies are inferred from the claim text.