Create ELF core dump on coreclr exceptions and signals. (dotnet/coreclr#10902)
authorMike McLaughlin <mikem@microsoft.com>
Thu, 13 Apr 2017 07:34:01 +0000 (00:34 -0700)
committerGitHub <noreply@github.com>
Thu, 13 Apr 2017 07:34:01 +0000 (00:34 -0700)
commit49b64f86e07d0e267aa4ecea6ba82580b7fee616
treea45ce56dfdfa755c9aff582673e94e6df7fc2fdd
parente5b2af967c89f78fcd68c444de0b2adba1a8e9dd
Create ELF core dump on coreclr exceptions and signals. (dotnet/coreclr#10902)

* Create ELF core dump on coreclr exceptions and signals.

When coreclr aborts because of a unhandled managed exception or hardware signal, the
"createdump" utility is launched if the "COMPlus_DbgEnableMiniDump" environment
variable is set to "1".

This utility uses the DAC enumerate memory interface to determine what memory regions
should be written for the managed state plus all the normal Linux memory regions for
the native state like threads, stacks, DSO, etc.

There still needs some to configure some of the "policies" like the name/location of
the core dump and the type of minidump (MiniDumpNormal, MiniDumpWithFullAuxiliaryState,
MiniDumpWithPrivateReadWriteMemory, etc.).

Currently only supported on Ubuntu Linux.

Make createdump smaller by using PAL in DAC module.

Commit migrated from https://github.com/dotnet/coreclr/commit/63cf53abae162743f1b217ee0ef3bbd3c505d097
29 files changed:
src/coreclr/CMakeLists.txt
src/coreclr/src/CMakeLists.txt
src/coreclr/src/ToolBox/SOS/Strike/util.h
src/coreclr/src/debug/CMakeLists.txt
src/coreclr/src/debug/createdump/.gitmirrorall [new file with mode: 0644]
src/coreclr/src/debug/createdump/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/debug/createdump/crashinfo.cpp [new file with mode: 0644]
src/coreclr/src/debug/createdump/crashinfo.h [new file with mode: 0644]
src/coreclr/src/debug/createdump/createdump.cpp [new file with mode: 0644]
src/coreclr/src/debug/createdump/createdump.h [new file with mode: 0644]
src/coreclr/src/debug/createdump/datatarget.cpp [new file with mode: 0644]
src/coreclr/src/debug/createdump/datatarget.h [new file with mode: 0644]
src/coreclr/src/debug/createdump/dumpwriter.cpp [new file with mode: 0644]
src/coreclr/src/debug/createdump/dumpwriter.h [new file with mode: 0644]
src/coreclr/src/debug/createdump/memoryregion.h [new file with mode: 0644]
src/coreclr/src/debug/createdump/threadinfo.cpp [new file with mode: 0644]
src/coreclr/src/debug/createdump/threadinfo.h [new file with mode: 0644]
src/coreclr/src/debug/daccess/dacfn.cpp
src/coreclr/src/debug/daccess/enummem.cpp
src/coreclr/src/debug/daccess/request_svr.cpp
src/coreclr/src/debug/inc/dump/dumpcommon.h
src/coreclr/src/dlls/mscordac/mscordac_unixexports.src
src/coreclr/src/inc/arrayholder.h [new file with mode: 0644]
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/pal/src/config.h.in
src/coreclr/src/pal/src/configure.cmake
src/coreclr/src/pal/src/include/pal/process.h
src/coreclr/src/pal/src/init/pal.cpp
src/coreclr/src/pal/src/thread/process.cpp