Since the launch of VMware Workstation 7, I have spent a lot of time interacting with customers to learn why and how they are using VMware Workstation. Through this process, I’ve discovered that one of the most powerful, innovative features in Workstation 7, Replay Debugging, has good awareness but not many people have tried it. VMware has significantly enhanced this feature based on feedback we have received from our developer community and our own developers who use it internally. I believe VMware Workstation’s Replay Debugging will help developers save a tremendous amount of time identifying and resolving issues.
So, how exactly does Replay Debugging do that?
Check out this video for a simple demonstration performed by my colleague E Lewis using Visual Studio and VMware Workstation. Then keep reading for more details.
Replay Debugging does exactly what its name implies – it allows you to record the execution of your virtual machine and then play it back later. This is where you may think “Oh, just like a DVR, right?” Well, not exactly. 🙂
It’s much more than that. We are talking about literally recording the entire execution of your VM as it happens. Not just what you see, but everything that happens under the hood as well. Events, interrupts, memory allocation, changes to disk contents, user inputs and device output… everything. When you replay, you essentially get a carbon copy of what your entire VM was like at the same point while recording. All of the execution happens deterministically and in exactly the same fashion as it did while it was recorded! And, since we only record asynchronous events instead of interpreting every instruction to do this, we have a fairly low performance overhead.
So, what’s so cool about that?
As everyone who writes code knows, code tends to have bugs. And some bugs, like cockroaches, tend to be worse than others. Anyone who has ever had to deal with a deadlock, a race condition, or any timing-related issue for that matter knows just how annoying and difficult these problems can be. You are sitting there all pumped up and ready to fix the problem, but despite anything you try, you cannot reproduce it. And you are just left wishing you could somehow capture the bug as it happens, to be able to investigate it later. With VMware Workstation, you can record the execution of your VM until you catch the issue in action, just once, and then you have eternal access to it! With the virtual debugger you can attach to your code and step through the recording to see exactly what causes the glitch in your app
If you would like to give Replay Debugging a try, head over to E Lewis’s blog www.replaydebugging.com for additional guidance, tips, and tricks. If you do not have VMware Workstation, download a free trial here. www.vmware.com/go/tryworkstation.