VirtualKD is a tool that improves your kernel debugging performance with VMWare and VirtualBox. It seamlessly integrates with WinDbg and dramatically reduces debugging latency. Just run the Virtual Machine Monitor, select a VM and press "Run debugger". A ready-to-go WinDbg window will appear and a faster-than-ever debugging session will start.
New in version 3.0: Now compatible with Windows 10 and VirtualBox 5.x.Want to debug Linux kernel from Visual Studio? Check out our VisualKernel product!
- Significantly improves kernel debugging performance with VMWare and VirtualBox.
- Supports Windows XP to Windows 10, 32-bit and 64-bit.
- Fixes truncated Driver Verifier load messages.
- Compatible with WinDbg and VisualDDK.
- Easy installation.
To download VirtualKD, see this page. The packages available to download include release build, debug build with PDB files for source-level debugging, and full source archive. Note that you need to download BazisLib library and VirtualBox sources to build VirtualKD.
Please report at the forum.
TroubleshootingIf something goes wrong, I strongly recommend you to download the sources and see everything in a debugger. Feel free to ask any questions on the SysProgs forum.
You can modify some parameters in registry under SOFTWARE\BazisSoft\KDVMWare\Patcher:
AllowPatchingAtTableStart. Set it to 0 if your VMWare crashes when being patched.
AllowReplacingFirstCommand. Set it to 1 if patching fails (and debug output indicates something like "0 free entries").
DefaultPatchingAtTableStart. You can try setting this to increase the performance (just a bit), but in can make VMWare crash on patching. Feel free to try ;) Additionally, you can set the WaitForOS to 0 in VirtualKD\Monitor to let the debugger be started immediately when a VM is detected (without waiting for OS to load).
The information about source code structure and some hints for experimenting with it can be found at the following address: http://virtualkd.sysprogs.org/dox
I would like to thank the following people for making the creation of this tool possible:
- Ken Johnson (http://www.nynaeve.net) for the idea (VMKD project).
- OpenVMTools team (http://sourceforge.net/projects/open-vm-tools)
- Tomasz Nowak (http://undocumented.ntinternals.net/)
- MS and VMWare for creating scalable and flexible architectures
- Sun Microsystems for the VirtualBox
- Klaus Espenlaub for integrating VirtualKD stub into VirtualBox tree