English / 日本語
Sample WinDbg UI extensions and command extensions.
This repository contains practical WinDbg extension examples, including RegStr, Command History, and Command Viewer UI extensions, as well as the regstr command extension.
- regstr command extension: If a register value can be interpreted as an ASCII string, it also displays that string
- RegStr UI extension: Displays register values and strings in the RegStr tool window according to the execution state
- Command History UI extension: Retains command history, pin commands, and rerun commands
- Command Viewer UI extension: A command execution window that updates on every step. Supports history and highlighting differences in command output
- Windows 11
- WinDbg 1.2603.20001.0, 1.2606.22001.0
- Windows SDK 10.0.26100.7627
- Visual Studio 2026 18.5.2
Note: regstr extensions support debugging x64 applications only.
Note: regstr_c.dll, regstr_cpp.dll, regstr_cpp2.dll, and regstr_rs.dll have different implementations, but all provide the same functionality. If you use them, use only one of them.
- Download and extract the prebuilt zip from the Releases page
- Launch WinDbg, debug any x64 application, and load the DLL with
.load <absolute path to the DLL>. The DLL is one ofregstr_*.dll - Confirm that the
!regstrcommand is available
If you want it to be loaded automatically at startup, copy the entire UserExtensions folder to %LOCALAPPDATA%\DBG\.
Note: Operation is not guaranteed on WinDbg versions other than the one listed above.
RegStr:
Note: RegStr extension supports debugging x64 applications only.
- Download and extract the prebuilt zip from the Releases page
- Create a
UIExtensionsfolder under%LOCALAPPDATA%\DBG, and placeRegStr.dllinside it - When you start WinDbg, a
Register stringtab will be added. Click theRegister stringbutton inside it to open theRegStrwindow - Debug any x64 application, and register information will be displayed in the
RegStrwindow
Command History:
- Download and extract the prebuilt zip from the Releases page
- Create a
UIExtensionsfolder under%LOCALAPPDATA%\DBG, and placeCommandHistory.dllinside it - When you start WinDbg, a
Command historybutton will be added to theViewtab. Click it to open theCommand Historywindow - Debug any application, and the command history will be displayed
Command Viewer:
- Download and extract the prebuilt zip from the Releases page
- Create a
UIExtensionsfolder under%LOCALAPPDATA%\DBG, and placeCommandViewer.dllandDiffPlex.dllinside it - When you start WinDbg, a
Command viewerbutton will be added to theViewtab. Click it to open theCommand Viewerwindow - Debug any application and enter any command into the text box at the top; the command output will be displayed
Building the C version:
- Open
c\regstr.slnxin Visual Studio - Copy
engextcpp.cppandengextcpp.hppfrom%PROGRAMFILES(X86)%\Windows Kits\<version>\Debuggers\inc, and modify them so they can be compiled - Build (this produces
regstr_c.dll,regstr_cpp.dll, andregstr_cpp2.dll)
Building the Rust version:
- Command extension: In the
rustfolder, runcargo build --release(this producesregstr_rs.dll)
Building RegStr:
- Open
ui\RegStr\RegStr.slnxin Visual Studio - Build (this produces
RegStr.dll)
Building Command History:
- Open
ui\CommandHistory\CommandHistory.slnxin Visual Studio - Build (this produces
CommandHistory.dll)
Building Command Viewer:
- Open
ui\CommandViewer\CommandViewer.slnxin Visual Studio - Build (this produces
CommandViewer.dll)
For implementation details, including how to create WinDbg UI extensions, please refer to our blog post How to implement WinDbg extensions (in Japanese): Part 1 - Command Extension, Part 2 - UI Extension, Part 3 - Practical UI Extensions.




