The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.

The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.

Date of Patent:
Mar. 05, 2024

Filed:

Mar. 23, 2022
Applicant:

Microsoft Technology Licensing, Llc, Redmond, WA (US);

Inventors:

Ben Niu, Bellevue, WA (US);

Gregory John Colombo, Kirkland, WA (US);

Weidong Cui, Redmond, WA (US);

Jason Lin, Bellevue, WA (US);

Kenneth Dean Johnson, Bellevue, WA (US);

Assignee:
Attorney:
Int. Cl.
CPC ...
G06F 9/38 (2018.01); G06F 11/36 (2006.01);
U.S. Cl.
CPC ...
G06F 9/3806 (2013.01); G06F 11/3636 (2013.01); G06F 11/3612 (2013.01); G06F 11/3664 (2013.01);
Abstract

A program is executed using a call stack and shadow stack. The call stack includes frames having respective return addresses. The frames may also store variables and/or parameters. The shadow stack stores duplicates of the return addresses in the call stack. The call stack and the shadow stack are maintained by, (i) each time a function is called, adding a corresponding stack frame to the call stack and adding a corresponding return address to the shadow stack, and (ii) each time a function is exited, removing a corresponding frame from the call stack and removing a corresponding return address from the shadow stack. A backtrace of the program's current call chain is generated by accessing the return addresses in the shadow stack. The outputted backtrace includes the return addresses from the shadow stack and/or information about the traced functions that is derived from the shadow stack's return addresses.


Find Patent Forward Citations

Loading…