Windows System Software -- Consulting, Training, Development -- Engineering Excellence, Every Time.

!pool Broken for Windows 10 Build 10586 Targets

!pool Broken for Windows 10 Build 10586 Targets

I’ll start by stating that the Debugging Tools team is aware of this problem and a fix the public PDBs is in the pipeline. It might take a while for that to show up, so I wanted to make sure everyone was aware of the issue.

The !pool WinDbg command has been rendered useless when debugging a Windows 10 Build 10586 (i.e. Windows 10 Update 1) target. This is another case of the public PDBs missing information that is necessary for the debugger extensions to work properly.

Unfortunately, the extension does not fail gracefully due to the missing type and instead reports a potential pool corruption:

15: kd> !pool ffffe00005fd2210
Pool page ffffe00005fd2210 region is Nonpaged pool

ffffe00005fd2010 doesn’t look like a valid small pool allocation, checking to see if the entire page is actually part of a large page allocation…

ffffe00005fd2010 is not valid pool. Checking for freed (or corrupt) pool
Bad allocation size @ffffe00005fd2010, zero is invalid

*** An error (or corruption) in the pool was detected;
*** Attempting to diagnose the problem.
*** Use !poolval ffffe00005fd2000 for more details.

If you see this error, you can determine if you have the “bad” PDB by checking for the nt!_POOL_HEADER data type. If it’s missing, !pool isn’t going to work for you on this version of Windows:

15: kd> dt nt!_pool_header
Symbol nt!_pool_header not found.

We’ll be sure to update when we have confirmed that the fixed PDB is available. In the meantime, if this extension is critical to you it can be fixed using our previously discussed technique: Fixing Broken Debugger Extensions