Microsoft is announcing a preview version of brand new WinDbg (preview) for Windows.
WinDbg is a debugging tool for Windows used by developers and trained personnel to debug code that’s running on x86-based, x64-based, or ARM-based processors.
The new WinDbg has been updated with modern visuals, faster windows, a full-fledged scripting experience, built with the easily extensible debugger data model front and center.
For people already familiar with WinDbg, the new WinDbg tool uses the same underlying engine as WinDbg today, so all the commands extensions and workflows will still work just as they did before.
What’s New
There are a lot of major changes, some of them under the hood and some of them really obvious. Here are my favorites or the things that people have told me they like the best.
Less intimidating
One of the words people often use to describe WinDbg is “intimidating”. When you first open it, you get a dull gray screen and very little indication of what to do next. Once you’re going, outside of the stepping icons, it’s difficult to tell what toolbar button or menu is what you want. With WinDbg Preview we’ve taken a few steps to make it a bit easier for beginners.
- Ribbon – Ribbons are great when icons don’t do a great job of describing an action, and when there are a lot of different contextual actions that are only relevant sometimes. Right now our ribbon is pretty barebones with the basics, but over time we’ll be adding more ribbons for specific contexts while you’re debugging.
- Re-worked file menu – The new file menu makes it much more clear which options you have for starting and configuring your debugging session. The attach dialog is much cleaner and more organized now and there’s even a new option to launch your Store App or background tasks without needing to set it up with PLMDebug.exe.
- Familiar source windows – Source windows now are better in pretty much every way and should look more like to the source windows you’re used to seeing in every other modern editor.
Quality of life improvements
WinDbg has gone a long time without any major quality of life improvements or modernizations. This has led a lot of people to doing registry hacks to get a prettier theme, or having a dozen icons pinned to their taskbar for each thing they debug often. We’ve taken some of these work-arounds and made them easy to access.
- Dark theme – This one is pretty self-explanatory, a lot of people use dark themes in their editors, and then flip over to the glaring brightness of WinDbg. Now it can match!
- Recent targets – Instead of having to have your KDNET key and IP on a sticky-note on your monitor, WinDbg Preview will now remember all your recent sessions and some of the settings that you had during that session. You can quickly access them again from the recent targets list in the file menu.
- Various window improvements – Many windows have gone a while without updates or just have glaring bugs. Some of the notable things we’ve done differently are that the disassembly window keeps its highlighting in the right spot when scrolled, and the memory window has better highlighting and scrolling. Many windows are also asynchronous now and loading can be cancelled by running another command.
Data model front and center
Hopefully you’ve heard about the debugger data model by now. If you haven’t check out some of my older blog posts at https://blogs.msdn.microsoft.com/windbg and our MSDN docs linked above. Up until now, the data model was only accessible through JavaScript and the dx command. With WinDbg Preview we’re putting the data model under the vast majority of what you see, making it much more extensible.
- Extensible locals and watch – The data model is now powering the locals and watch windows. NatVis and JavaScript extensions that extend the data model will be reflected in those windows. You can even put LINQ queries into the watch window!
- Model windows – There’s a new type of window called a model window. Model windows will show the results of any model query in a normal hierarchy view or a table. You’ll see in the FAQ that WinDbg Preview doesn’t have a modules window, you can use a model window to make your own with @$cursession.Modules! This also has the benefit that if you make a JavaScript extension that extends modules, it’ll automatically update your window.
- Built-in scripting environment – One of the biggest complaints with scripting and extending the debugger is having to go into an IDE to write and iterate on it with WinDbg Preview you can write and execute your JavaScript and NatVis directly from the debugger. The script window has error highlighting, IntelliSense, and easier execution of scripts.
Restrictions and other things worth noting
While we’ve got that big list of what’s new and awesome, this is still a preview, so there’s some things that you should be aware of.
- At this point in the preview, we’re only offering WinDbg Preview through the Windows Store. That means only devices running Windows 10 Anniversary Update can install it.
- You might hit errors when trying to do something that requires elevation. You’ll have to manually launch WinDbg Preview elevated.
- The concept of a workspace is going to be changing a lot. A workspace in WinDbg Preview is vastly different from one in WinDbg. The MSDN documentation linked above has more information.