goldshtn / msos

Command-line environment a-la WinDbg for executing SOS commands without having SOS available.
Other
96 stars 21 forks source link

!pe fails for no-heap dumps because of an assertion inside CLRMD #37

Closed goldshtn closed 9 years ago

goldshtn commented 9 years ago

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.

goldshtn commented 9 years ago

Need to get the field values by address. There is basic support for doing this with the _message field, but need to do it for everything.

goldshtn commented 9 years ago

Workaround implemented in 4a6674c649706187fd481e2c4ebbf0acbce76adc.