1. A method, comprising: detecting a call to a subroutine; in response to said detecting the call to the subroutine, generating a program trace correlation message; sending the program trace correlation message to a trace port; sampling data associated with an execution of the subroutine; sending the sampled data to the trace port; detecting a return from the subroutine; in response to said detecting the return from the subroutine, generating a trace message; sending the trace message to the trace port; and correlating the sampled data to the subroutine using the program trace correlation message and the trace message; wherein the execution of the subroutine is not affected by at least said sampling the data, said sending the sampled data, said detecting the return from the subroutine, and said correlating the sampled data.