1. A method of gathering memory usage information for a program of instructions including the steps of: starting to execute a sequence of operations in response to said program; selecting a set of operations from said sequence of operations; monitoring respective operations of said set of operations; recording access information associated with respective operations of said set of operations and identifying one or more memory objects being accessed by respective ones of said set of operations; enabling a watchpoint mechanism operable to detect one or more next operations accessing one or more of said memory objects; and recording access information about said next operations.