Home > Techniques > WTF? “tail fill – unable to read heap entry extra”

WTF? “tail fill – unable to read heap entry extra”

I was tracking down a memory leak using DMP files using a method outlined here. Windbg is great for this kind of memory leak debugging because you don’t have to worry about symbols at the time of the dmp gathering. Thus, you can start your debugging back home, after you get back from the customer site! If you are debugging in the office, it would probably be easier to just use a program like UMDH.

Anyway, after I had gathered my .DMP files (with user mode stack trace databases turned on), I loaded them into windbg and started to take a look. Unfortunately as I did a !heap -a, I kept getting errors like:

heap entry extra at 000a24a0
000a24a8: 01818 . 00030 [07] – busy (18), tail fill – unable to read heap

Vostokov also discusses this error here. Being the good debugger I used the win2k version of !heap as he suggests, and it allowed me to !heap -a, and get some addresses. Great!

Now I want to dump out some stacks!

!heap -p -a

ERRRROOOORR. No pageheap information? But I used gflags to +ust, why do i need pageheap enabled? I just want stack traces! All the webpages and books seem to suggest you can do this. WTF?

Turns out, the once you use the win2k version of !heap ONCE, it will always use that version during that run of windbg! So simply reload your dump file, and you should be able to get stacktrace information again.

Categories: Techniques Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.