1. A method of sampling instructions executing in a processor comprising: selecting an instruction for sampling; storing information relating to the instruction; determining whether the instruction includes events of interest; and reporting the instruction if the instruction includes events of interest.