The assertion has to do with the fact CLRMD is trying to get fields by name to display the exception (e.g. the inner exception field, message field, and so on) and this fails because the heap doesn't contain the required data. The assertion itself originates in DesktopGCHeap.InitBasicTypes. In Release mode the assertion doesn't fire, but the fields remain uninitialized so using them causes an NRE.
The assertion has to do with the fact CLRMD is trying to get fields by name to display the exception (e.g. the inner exception field, message field, and so on) and this fails because the heap doesn't contain the required data. The assertion itself originates in
DesktopGCHeap.InitBasicTypes
. In Release mode the assertion doesn't fire, but the fields remain uninitialized so using them causes an NRE.