Patent ID: 8719796

Claim:
A method implemented in one or more computing devices, the method comprising: obtaining a program trace of a program, the program trace having been generated using predictive program instrumentation and including one or more feasible traces that were not part of a program execution from which the program trace is generated, the one or more feasible traces having been generated based on partial orders of events determined at each of multiple predetermined points during collection of a direct trace of the program; traversing events of the program trace; identifying, for each event identified in traversing the program trace, a trace slice of which the identified event is a part based on one or more parameter instances in the identified event; adding, for each trace slice of which the identified event is a part, the identified event to an end of a record of the trace slice; obtaining one or more trace slices obtained from the program trace; generating a specification for each of the one or more trace slices, each specification comprising a finite state machine indicating a manner in which the program operates; and outputting the specification for each of the one or more trace slices.