摘要 |
We describe a method of generating program analysis data for analysing the operation of a computer program, the method comprising: running a first instrumented version of machine code representing the program, wherein said running defines a reference execution of said program; capturing a log of non-deterministic events during said reference execution such that the machine code can be re-run in a deterministic manner to reproduce states of a processor and memory during the re-running; generating a second instrumented version of said machine code comprising instrumented machine code to replay execution of said machine code representing the program and to capture and store program state information during said replayed execution, wherein said program state information comprises one or both of one or more values of registers of said processor and one or more values of memory locations used by said program; running said instrumented machine code whilst reproducing said non-deterministic events during said running to reproduce said reference execution; and capturing said program state information whilst reproducing said reference execution to generate said program analysis data. |