.NET Allocation Profiler tool
 (with source if you want
it).

“Allocation Profiler is a tool for visualizing and
analyzing allocations on the GC heap. It presents the data from
this log file in a variety of interesting and useful views. It can
be used to verify program execution (e.g. ensure you’ve allocated
only the objects you thought) and to detect possible memory leaks.
Simply launch AP, point it at your EXE and click a
button.”