Today we are excited to announce the release of VisualKernel 4.0 Beta 1 – the most intuitive way to develop kernel-mode code for Linux. The new beta is packed with usability features, supports the latest versions of popular Linux distributions and comes with pre-built VM images that let you delve into the Linux kernel code without the need for lengthy setup.
Better Virtual Machine Integration
The easiest way to start experimenting with the Linux kernel is to install it into a virtual machine. As the debug logic is provided by the VM itself and is separated from the kernel, it works faster and more reliable than debugging via a serial port or Ethernet. VisualKernel 3.x included out-of-the-box support for debugging VMWare machines, however they did not work very well on hosts running the Hyper-V platform (required by WSL2) and some Windows 11 machines.
VisualKernel 4.0 addresses it with out-of-the-box support for 3 virtualization engines:
- VMWare for hosts without Hyper-V
- Development snapshots of VirtualBox that include a fully functional GDB stub
- A Windows build of QEMU that uses the Hyper-V engine, does not require installation, and fully supports debugging
This set of virtualization engines covers virtually every possible host setup, so you can always get a debuggable setup without the need for any additional hardware. You can find more details on the supported VM engines here.
Pre-built Kernel Virtual Machines
Since VisualKernel can now easily debug most virtual machines, we took it one step further and created a repository of debuggable Linux VM images. You can now choose between a few popular Linux distributions and get a usable virtual machine with a fully debuggable Linux kernel in just a few clicks: The kernels come pre-indexed with our IntelliSense engine, so you can instantly find callers of different functions, references to all types, and other information similar to what VisualGDB does for user-mode projects:
Since a lot of kernel-mode development involve complex real-time systems that do not like being disturbed, VisualKernel 4.0 now includes Live Watch – a mechanism for observing the variables without stopping the debugger.
We have thoroughly optimized our Live Watch engine to handle the vast amount of Linux kernel symbols, and it does its job remarkably well: you can easily search throughout the global variables in the entire kernel, or your modules, plot their values, or have VisualKernel instantly display their values directly in the code:
Better Raspberry Pi Support
VisualKernel 4.0 supports JTAG-based debugging of Raspberry Pi 1, 2, 3 and 4 (including the 64-bit kernel builds). To make it easier, our repository now includes debuggable kernel packages for Raspberry Pi (including all the necessary scripts), so you won’t need an extra build machine and can start working on your ideas with just a few clicks.
Latest Linux Compatibility
VisualKernel 4.0 supports Ubuntu 22, Fedora 36, Debian 11, Mint 203 and CentOS Stream 8 and is compatible with the latest Visual Studio 2022. Just point it to a compatible target and VisualKernel will take care of getting the symbols, configuring the build environment and everything else.
Try it Out
You can download the latest VisualKernel here. If you have any feedback, don’t hesitate to reach us out via our support form or the VisualKernel forum.