How to Install and Configure WinDBG for BSOD Analysis

Information
WinDBG (Windows DeBuGger) is a Microsoft software tool that is needed to load and analyse the .dmp files that are created when a system BSOD's. The latest version of WinDBG allows debugging of Windows 10, Windows 8.x, Windows 7, and Windows Vista.
This tutorial will show you how to download, install, configure and test WinDBG in preparation for analysing BSOD's.

Note
WinDBG requires .NET Framework 4.6 in order to run. If it's not installed, download it from this location, and install it before downloading and installing WinDBG.
Dumps from C:\Windows and C:\Windows\Minidump cannot be opened unless you move them to another location first.
Step 1
Downloading and Installing WinDBG
1. Download the WinDBG sdksetup.exe setup file.
2. Run sdksetup.exe, and specify the installation location (this example uses the default location):
3. Once you have accepted the licence agreement, you will be prompted to select the features to install. Select only the Debugging Tools for Windows option, as shown. Proceed with installation.
4. The debugging tools will be downloaded and installed.
Step 2
Associate .dmp files with WinDBG
If configured correctly, Windows will write information to a .dmp file when the host system BSOD's. In order to read the information within the .dmp file, it needs to be associated with WinDBG.
1. Open an elevated command prompt by right-clicking on the Windows Start Button and selecting Command Prompt (Admin).
2. Copy the highlighted text below, and paste it into the command prompt window using Ctrl+V and hit enter to change directory to the installation location path.
cd\Program Files (x86)\Windows Kits\10\Debuggers\x64\
3. Now copy this highlighted text, paste it into the command prompt window, and hit enter to make the association.
windbg.exe -IA
4. This is how it looks when executed in the command prompt window.
If done correctly, a new blank instance of WinDBG will open with a confirmation box. WinDBG can now be closed.
Step 3
Configuring the WinDBG Symbol Path
The symbol path is the location in which WinDBG searches for symbols each time it reads a binary in the BSOD .dmp file. It is critical to get this step correct.
You can specify any location to create a cache/store of downloaded symbols, but I recommend using the default location (as used in this tutorial).
To create and set a symbol path, do the following.
1. Start a blank instance of WinDBG by going to:Start > All apps > Windows Kits > WinDbg (x64)
2. In the WinDBG panel, go to:File > Symbol File Path
3. Copy the highlighted text below and paste it into the Symbol Search Path box, and click OK - there is no confirmation.
What that line means is :
- Create a folder called C:\SymCache
- Download new symbols from the msdl site and save them to C:\SymCache
You can specify any path you like, for example SRV*E:\My_Symbols*http://msdl.microsoft.com/download/symbols will also work.
4. Save the symbol path by going to:File > Save WorkSpace
5. Close WinDBG.
Step 4
Testing the WinDBG Installation
1. Download this small zip file.
2. Open it, and double click the .dmp file.
3 WinDBG should open automatically and you should see some text appearing in the workspace. Since this is the first .dmp file being read on your system, WinDBG appears to be slow do not interrupt it. What is happening is:
- A folder called Symcache is being created on C:
- Symbols are being downloaded and saved to C:\Symcache
The next time a .dmp is opened, it will be quicker since it already has some symbols. Over time the C:\Symcache folder will grow in size as more symbols are added. My current Symcache folder is 1.07GB in size.
You will know the reading of the .dmp file is complete when our output looks like this. Note the breakpoint that I have highlighted in bold text red - that means the .dmp file has been completely read.
Code:
Microsoft (R) Windows Debugger Version 6.3.9600.17029 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [F:\TEMP\7zO89606264\050114-17253-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Kernel Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS Personal
Built by: 7601.18247.amd64fre.win7sp1_gdr.130828-1532
Machine Name:
Kernel base = 0xfffff800`02a53000 PsLoadedModuleList = 0xfffff800`02c966d0
Debug session time: Fri May 2 11:37:27.580 2014 (UTC + 9:30)
System Uptime: 0 days 0:04:04.718
Loading Kernel Symbols
.
Press ctrl-c (cdb, kd, ntsd) or ctrl-break (windbg) to abort symbol loads that take too long.
Run !sym noisy before .reload to track down problems loading symbols.
..............................................................
................................................................
................................
Loading User Symbols
Loading unloaded module list
.....
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 24, {1904fb, fffff88008f94c48, fffff88008f944a0, fffff80002ddde2e}
Probably caused by : ntkrnlmp.exe ( nt!FsRtlNotifyFilterReportChange+122 )
Followup: MachineOwner
---------
To close WinDBG go to File > Exit
You are done. WinDBG has been installed, .dmp file associations created, and symbol path correctly setup.