This project is read-only.
The Heap-On-Node (HN) inspector interprets the specified node as a heap, showing the various heap metadata as well as the individual heap allocations.


At the top of the HN inspector is a variation of the file range control. This is displaying the data contained in the heap, from offset zero (the left) to the end of the heap (right). Red areas are allocations out of this heap. Green areas are metadata.

Below this is the the HN Header. This is located at the start of the first external block of the heap. Every external block of the heap contains a header which contains, at minimum, the offset into that block of the allocation array. The first block is special in that it contains additional metadata about the heap, displayed here.
  • ibHnpm The offset into the first block of the heap allocation array. Each block has a seperate header which contains at least (and sometimes only) this field
  • bSig The signature of the heap. Must be 0xEC.
  • bClientSig The client signature of the heap. This has meaning only to the users of the heap.
  • hidUserRoot The root allocation of the heap. This has meaning only to the users of the heap.

Below this and on the left is a list control, allowing you to select a specific external block (confusingly called a 'pages') of the heap. The fill level of each page is given. The values on the right are specific to which heap page is selected.

The HN Page Info area gives some metadata about the specific heap page selected on the left. It contains information from both the header of the page (ibHnpm) and the allocation array (pointed to by ibHnpm).
  • Page Type The type of heap page
  • ibHnpm the offset into this block of the heap allocation array.
  • cAlloc The number of allocations on this page
  • cFree The number of free allocations (size = 0) on this page

Below that is a list control showing the individual allocations on this page, their heap id, offset into this page, and total size. When an allocation is selected, the file range control highlights that allocation. An allocation can also be viewed by double clicking on it, giving a variation of the Element Stream dialog.

Last edited Apr 5, 2010 at 6:59 PM by terrymah, version 4


No comments yet.