Overview

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!

Features

  • 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.

Screenshots

screenshot vm monitor screenshot TraceAssist parameters

Downloading

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.

Bugs

Please report at the forum.

Troubleshooting

If 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.

Tweaking

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).

Source structure

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

Acknowledgments

I would like to thank the following people for making the creation of this tool possible: