I was recently asked ... Every time you run !dumpallexceptions ( !dae ) you will find that there is always a System.OutOfMemory exception object that will be listed
Number of exceptions of this type: 1
Exception MethodTable: 0482151c
Exception object: 182d005c
Exception type: System.OutOfMemoryException
The current thread is unmanaged
An OutOfMemory is a critical situation from which the process many not be able to recover. It could very well be that .NET may not be able to create an exception object at that point. So the .Net framework creates an OutOfMemory exception object in the start and stores it for latter use.
That is the reason why !dae will always return a System.OutOfMemory object; it just scans the heap for all exception objects and lists it.