New WinDbg available in preview!

We are excited to announce a preview version of a brand new WinDbg. We've updated WinDbg to have more modern visuals, faster windows, a full-fledged scripting experience, built with the easily extensible debugger data model front and center. I'll start this by saying that WinDbg Preview is using the same underlying engine as WinDbg today, so all the commands, extensions, and workflows you're used to will still work just as they did before.

Getting started

I know a lot of you are going to want to dive right in and try it out, here are the things you should know before doing so.

Installation- You can install the WinDbg Preview from the store if you have Windows 10 Anniversary Update or newer athttps://www.microsoft.com/en-us/store/p/windbg/9pgjgd53tn86 - WinDbg Preview uses some features from the Windows 10 Anniversary Update, so that’s required for now. The Windows Store lets us release bug fixes and updates to you faster than we've ever been able to before, so make sure to stayed tuned to our blog and MSDN to learn the latest about the preview.

Feedback- Familiarize yourself a bit with the Feedback Hub! We've still got a long way to go before we cover all WinDbg features, and we'll be using the Feedback Hub to help us prioritize what you want us to work on! The Windows Insider website has a great overview on how to give good feedback - https://insider.windows.com/en-us/how-to-feedback Once you've read that, just hit the 'Feedback Hub' button on the home ribbon.

Questions- You're bound to have a lot of questions feel free to post them on this blog post, send feedback in the Feedback Hub, or tweet@aluhrs13and I'll do my best to answer. We'll be posting an FAQ on our blog sometime in the upcoming weeks.

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 around JavaScript and NatVis. Up until now, the data model was only accessible through JavaScript and thedxcommand. 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.

That's where we are today. The core experiences are there and we'll be releasing improvements faster than our normal pace now in that we're shipping from the Windows Store. Please don't hesitate to send us feedback and feature requests in the Feedback Hub or in the comments below, we want your input as we move forward!

Checked it in store today. I still get “Windbg Preview is currently not available”. I am checking this from India. Is there any region restriction. By the way, I am running Windows 10 – Version 1703, OS Build 15063.0.
What could I be missing?

Just leave it in the Store, it’s just better than have to download an entire SDK for it. Previously I could download it stand alone years back and it was easier to get an update than wait for Windows SDK, from the Store it’s an improvement overall. The Preview is not available for me yet though, still waiting…

There’s no need for the Store to have a download independent from the sdk, it used to be so and it’s not anymore just because of some stupid decision on their part.
A completely independent installer was indeed included in the sdk, the last time I checked, just not distributed on the web.

Windbg is a “system level” debugger. For one, it’s a kernel debugger which is used for debugging drivers and other kernel components, but it is also used for low level user mode debugging. Visual studio is usually what you want to use for application level debugging and the “F5” experience, but windbg gets used a lot for “hard” debugging problems where debugger extensions can be used to do some complex analysis. Windbg is also preferred for crash dump analysis, partly due to the powerful “!analyze” extension that can automatically debug a large class of problems.

Any plan to open source it at some point? I’m glad to finally see a major update, but overall windbg development has been painfully slow. It’d be great if we could contribute, or even fork it to adapt it fully to our needs…

It’s marked as x86 in the store because it supports x86 and x64. The main UI binaries are running as “AnyCPU” so they will run as 64-bit on 64-bit OS and 32-bit on 32-bit OS. Both 32-bit and 64-bit debugging engines are included. The UI will try to autodetect the correct engine to use when debugging so you get a 32-bit engine when debugging a 32-bit target (the debugging engine is hosted in a separate process from the UI). The autodetection still has some edge cases where it doesn’t work but it should be correct for most debugging cases.

Thanks for the feedback, I’ve added links to the JavaScript and NatVis docs. JavaScript is a really simple language, if you have a solid understand of C/C++, writing basic scripts in JavaScript isn’t difficult.

hi andy, we can’t download this preview version from app store. Only “share” button on the windbg preview download page.
os version: windows 10(10.0.15063.540), could you tell us how to fix this? thanks.

That’s great! I can’t wait to try it, my machine is x64 win10 enterprise 15063.540 in China. But when I enter app store, it shows that the app is not available. I think it has been more than 24h after you published this post. Please tell me how to get this app, thanks a lot!

After using the windows troubleshooter for Windows Store Apps, it found a problem with the temporary file store location. After it finished, this, and other Desktop bridge applications runs as expected

It’s not really that they were “removed”, since it’s a complete re-write we haven’t added them yet. File feedback in the Feedback Hub (http://aka.ms/dexex) to get them on our radar. Preferably two separate feedback items, one for -srcpath and one for -a.

Thanks Gunter, we’ve received a few crash dumps with this error and we’re looking into the root cause. I didn’t explicitly say it in the post, but early in the Preview, we’d expect it to be a little less stable than good old WinDbg.

I can’t get it to work. I get this error all over the program:
The procedure entry point SymGetSourceFileChecksumW could not be located in the dynamic link library C:\Program Files\WindowsApps\Microsoft.WinDbg_1.0.10.0_x86__8wekyb3d8bbwe\amd64\dbgeng.dll.
It won’t start the debugger.

Can you share more information about the crash with windbgfb@microsoft.com? A crash dump would be great, but any details would be helpful.

For the symbol path, right now settings like symbol path are persevered as part of recent targets. So if you set your symbol path for a specific session, then open that target through the “recent targets” tab in the File menu, it’ll have the same symbol path. The best way to preserve your symbol path “globally” is to set it up how you want, then run “.settings save