We can obtain a memory dump using WinDbg, which is part of the free debugging tools from Microsoft:
Purify is a debugging tool that is invoked when you compile your program. Purify adds code that detects when a memory error is going to occur and gives you feedback as to where and why. Purify will detect the following errors (plus a few more):
► Reading or writing beyond the bounds of an array.
► Reading or writing freed memory.
► Reading and using uninitialized memory.
► Reading or writing through null pointers.
► Reading or writing beyond the end of the call stack.
► Having memory leaks.