US 11,836,070 B2
Reducing trace recording overheads with targeted recording via partial snapshots
Jordi Mola, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Mar. 11, 2022, as Appl. No. 17/693,217.
Application 17/693,217 is a continuation of application No. 16/581,570, filed on Sep. 24, 2019.
Prior Publication US 2022/0197779 A1, Jun. 23, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 11/00 (2006.01); G06F 11/36 (2006.01); G06F 11/30 (2006.01)
CPC G06F 11/3636 (2013.01) [G06F 11/3096 (2013.01); G06F 11/366 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, implemented at a computer system that includes at least one processor, the method comprising:
during an execution of a first executable entity at the at least one processor, determining that a target chunk of executable instructions that is to be executed as part of the execution of the first executable entity is to be recorded during the execution of the first executable entity;
prior to executing the target chunk of executable instructions:
identifying one or more inputs of the target chunk of executable instructions, including identifying at least one non-parameter input of the target chunk of executable instructions, and
adjusting at least one page table entry (PTE) to cause a page fault based on at least one of (a) an access by a second executable entity to a first memory page, the first memory page corresponding to at least one of the identified one or more inputs; or (b) an access by the first executable entity to a second memory page, the second memory page not corresponding to any of the identified one or more inputs;
executing the target chunk of executable instructions at the at least one processor; and
based on detecting an occurrence of a page fault during the execution of the target chunk of executable instructions at the at least one processor, detecting that there was at least one of (a) an interference with at least one of the identified one or more inputs by the second executable entity due to an access by the second executable entity to the first memory page, or (b) an incompleteness of the identified one or more inputs based on an access by the first executable entity to the second memory page.