Patent ID: 7509632

Claim:
A computer-executed method for analyzing call history of a computer program, comprising the steps of: automatically collecting and storing a plurality of call history data sets at respective pre-defined sampling intervals during execution of said computer program, each call history data set comprising data identifying a respective called procedure of said computer program associated with each of a plurality of stack entries from a call stack, wherein each said call history data set is limited to a fixed number of said called procedures associated with the most recent stack entries from said call stack, said fixed number being fewer than the number of stack entries on said call stack for at least some of said pre-defined sampling intervals; subsequent to execution of said computer program, automatically constructing a call graph using said call history data sets stored during execution of said computer program, said call graph being constructed by selectively merging a plurality of call history sequences from respective said call history data sets according to whether the call history sequences meet at least one pre-determined merge criterion, wherein said at least one pre-determined merge criterion comprises whether a first contiguous subset of a first call history sequence constructed from at least one respective call history data set matches a second contiguous subset of a second call history sequence constructed from at least one respective call history data set, each of said first and second subsets having a pre-determined minimum size greater than one.