A virtualization based system infrastructure for dynamic program analysis