Useful and free Windows debugging tools

(You can start by installing Windows package manager chocolatey)

GVim – Not exactly a debug tool, but you need to read logs somewhere right? I assume I don’t need to explain vim. (btw :%!xxd turns vim into a hex editor)

WSL – I prefer to use unix-like tools, when switching development platforms this prooved to be an effective workflow (I can use the same tools on Mac, Win and Linux). I used babun before it got deprecated. But Windows supports running Ubuntu directly in Windows. Try this if you run into a problem during installation as I did. Or this or that if you will face a permission issue.

Depenency Walker – an app is not starting or a dll is not loading? Maybe some dll is missing. “Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules. Another view displays the minimum set of required files, along with detailed information about each file including a full path to the file, base address, version numbers, machine type, debug information, and more.”

Resource Hacker“Resource Hacker™ is a resource editor for 32bit and 64bit Windows® applications. It’s both a resource compiler (for *.rc files), and a decompiler – enabling viewing and editing of resources in executables (*.exe; *.dll; *.scr; etc) and compiled resource libraries (*.res, *.mui). While Resource Hacker™ is primarily a GUI application, it also provides many options for compiling and decompiling resources from the command-line.”

Visual Leak Detector – We want our code to be memory leak free, right? “Visual C++ provides built-in memory leak detection, but its capabilities are minimal at best. This memory leak detector was created as a free alternative to the built-in memory leak detector provided with Visual C++. “

Very Sleepy – This tool saved me some CPU time already.
“Very Sleepy is a free C/C++ CPU profiler for Windows systems.
It supports any native Windows app, if it has standard PDB or DWARF debugging information. No recompilation is necessary – it can just attach to any app as it’s running.
Both 32-bit x86 and 64-bit x64 systems are fully supported, and Very Sleepy will work with both Visual Studio or gcc/mingw compilers.”

Process Monitor and Process Explorer – These two are quite simillar and you probably heard about them. But what are the differences?
Chris Sanders explains: “Process Monitor is a real-time troubleshooting tool. This tool will display information regarding the file system, registry, and the processes running on the system as they are occurring. You can think of this as a combination of the old FileMon and RegMon tools with some basic diagnostic features.
Process Explorer is considered to be a more advanced form of the Windows Task Manager. Using it you can find out what files, DLLs, and registry keys particular processes have open and the CPU and memory usage of each.
In daily use I often start with Process Explorer to find processes which are consuming a lot of system resources and then move to process monitor to dig deeper into these processes. If it’s worth the time to use one of these tools then it’s probably worth the time to use both, and you will commonly find yourself doing this.”

ProcDump – Do you wish to have a dump of a process when it hangs (-h), crashes (-t) or an unhandled exception occurs (-e)? This is your tool.
“ProcDump is a command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during a spike that an administrator or developer can use to determine the cause of the spike. ProcDump also includes hung window monitoring (using the same definition of a window hang that Windows and Task Manager use), unhandled exception monitoring and can generate dumps based on the values of system performance counters. It also can serve as a general process dump utility that you can embed in other scripts.”

WindDBG – … and when you a dump file you can open it here! It is available via Microsoft Store or as part of Windows Debugging Tools. And a useful link!

XML Notepad – A XML editor from Microsoft. Handy to edit and browse XML files.

Far – For effecient debugging you need a fast file manager. Or muCommander.

Meld – diffing two (or three) different files is kind of debugging as well.


Comments are closed.