US 11,720,394 B2
Automatic code path determination
Andrew Heth Farrier, Redmond, WA (US); and Danny Chen, Woodinville, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on May 4, 2021, as Appl. No. 17/307,358.
Prior Publication US 2022/0357978 A1, Nov. 10, 2022
Int. Cl. G06F 9/44 (2018.01); G06F 9/46 (2006.01); G06F 11/30 (2006.01); G06F 11/32 (2006.01); G06F 11/34 (2006.01)
CPC G06F 9/461 (2013.01) [G06F 11/302 (2013.01); G06F 11/323 (2013.01); G06F 11/3495 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A device implemented method, comprising:
collecting context switch and ready thread event tracing data from a program over a period of interest;
transforming the context switch and ready thread event tracing data into a set of blocks where individual blocks represent times that threads were executing and timestamped links between individual blocks when a first thread readied a second thread;
calculating a start block and a stop block corresponding to start and stop times of the period of interest;
pushing the stop block onto a search stack;
iterating pushing blocks from the set of blocks into the search stack until reaching the start block;
creating a reverse stack that comprises the blocks of the search stack in reverse order;
creating a final stack;
initializing a last block to a top of the reverse stack;
pushing a current block onto the final stack until the current block is the last block; and,
outputting an ordered subset of the set of blocks that contribute to a time segment within the period of interest.