Fix createdump crash on alpine 3.12 and above. (#56272)
authorMike McLaughlin <mikem@microsoft.com>
Sun, 25 Jul 2021 19:13:32 +0000 (12:13 -0700)
committerGitHub <noreply@github.com>
Sun, 25 Jul 2021 19:13:32 +0000 (12:13 -0700)
commit95863758cd16c345d0b8fca067d5db5d6901e498
tree95d31ea39cc0bd189d67d93098d97d744963a0ec
parentce3e00b9d5e0135af68fa878f48952a52614e0ef
Fix createdump crash on alpine 3.12 and above. (#56272)

Finally hit an existing problem in createdump (since 2.1) where the std::set<MemoryRegions> in
ThreadInfo::GetThreadStack() where it is calling CrashInfo::SearchMemoryRegions with m_crashInfo.OtherMappings()
which returns a copy of the set of MemoryRegions instead of a reference. On alpine 3.12 musl, this set copy
is freed right away when it goes out of scope as soon as SearchMemoryRegions returns. On any other Linux distro
and MacOS the set doesn't get freed/invalidated as soon.

Return references to the threads and memory region sets in the CrashInfo functions.
src/coreclr/debug/createdump/crashinfo.cpp
src/coreclr/debug/createdump/crashinfo.h