The most important factor for ease of use and flexibility is the ability to dynamically trace the kernel and userspace applications at specific probe points. Dynamic tracing serves two purposes: First, the probes can be inserted as required, and second, we can remove/disable the probes when we are done with the analysis. Thus we can precisely control the overhead of the tracing tool on the system.