When I run !eeheap -loader
SOS command in WinDbg against a memory dump of any .NET process, it outputs two strange groups of of heaps after the domains and JIT code heap.
Here is the output:
0:000> !eeheap -loader
Loader Heap:
--------------------------------------
...........
--------------------------------------
Module Thunk heaps:
Module 000007fecb601000: Size: 0x0 (0) bytes.
Module 000007fee8bc1000: Size: 0x0 (0) bytes.
...........
Total size: Size: 0x0 (0) bytes.
--------------------------------------
Module Lookup Table heaps:
Module 000007fecb601000: Size: 0x0 (0) bytes.
Module 000007fee8bc1000: Size: 0x0 (0) bytes.
...........
Total size: Size: 0x0 (0) bytes.
--------------------------------------
Total LoaderHeap size: Size: 0xd55000 (13979648) bytes total, 0xb0000 (720896) bytes wasted.
=======================================
What are the "Module Thunk heaps" and "Module Lookup Table heaps"? And why are they always zero size? The only thing I know is that the both of these heaps contain references to every loaded module.