1. A method of probing first and second domains of a computer system having virtual machines running therein, comprising: instrumenting the first domain with a first probe and the second domain with a second probe; executing the first probe in the first domain, wherein a value of a variable that is shared by the first and second probes is updated based on an output of the first probe probing the first domain; and executing the second probe in the second domain, the updated value of the shared variable being read during execution of the second probe and used to direct the execution of the second probe, wherein outputs generated by the first probe and outputs generated by the second probe are collected in a common buffer according to a time order, wherein outputs generated by the first probe are stored in a first queue prior to being stored in the common buffer and outputs generated by the second probe are stored in a second queue prior to being stored in the common buffer, and wherein the first and second probes access a shared counter when each of the outputs generated by the first probe and the outputs generated by the second probe is stored in the first queue and in the second queue, respectively, and each of the outputs stored in the first and the second queues is associated with its own unique value obtained from the shared counter.