Patent ID: 8752007
Filing Date: 2014-06-10
Classification: G06F

Abstract:
1. A system comprising: a processor; and a computer-readable storage device storing instructions which, when executed by the processor, cause the processor to perform operations comprising: identifying a block in program source code, wherein: (i) for any two consecutive lines of code within the block, when a first line of the two consecutive lines executes at a first time, the second line of the two consecutive lines executes at a second time later than the first time; and (ii) for a pair of consecutive lines of code, line X and line Y, within the block, another line of code is executed between the line X and the line Y; determining, based on (a) an analysis of the block and a control-flow graph of the block which indicates execution of a first node in the block implies execution of a first line of a second node in the block, and (b) a branch statement located within the block, an instrumentation location in the program source code; generating run-time instrumenter source code based on the program source code and the instrumentation location; compiling the program source code to yield a program; compiling the run-time instrumenter source code to yield a run-time instrumenter executable; and executing the program and the run-time instrumenter executable on a single device in parallel.