In windbg, how do I get a heap header address from !heap -l results?

Posted by Kevin on Stack Overflow See other posts from Stack Overflow or by Kevin
Published on 2010-03-23T20:42:12Z Indexed on 2010/03/23 20:43 UTC
Read the original article Hit count: 420

Filed under:

I am playing around with windbg's !heap command, particular the "-l" switch which detects memory leaks.

When -l does detect a leak, I am having problems navigating from its results to a stack trace for the source of the leak.

Here is a snippet of the results from !heap -l

0:066> !heap -l Searching the memory for potential unreachable busy blocks.

Entry User Heap Segment Size PrevSize Unused Flags

0324b500 0324b508 01580000 03230000 20 60 a busy 0324b520 0324b528 01580000 03230000 20 20 a busy 0324b5c8 0324b5d0 01580000 03230000 20 28 a busy

Windbg's documentation for !heap tells me to use dt _DPH_BLOCK_INFORMATION with the header address, followed by dds with the blocks' StackTrace field. But the output for !heap -l doesn't specify a header address! It's only specififying Entry, User, Heap, and Segment. I've racked my brain looking over the other commands but can't figure out how to get the header address from any of these fields. Can someone help?

© Stack Overflow or respective owner

Related posts about WinDbg