Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Collect core dump with shared memory of running process

Core dump collects only process space but not the shared memory which is created for Inter-process communication. How can I make core dump to include shared memory of running process too?

like image 1000
shim_mang Avatar asked Mar 14 '23 06:03

shim_mang


1 Answers

Set the core file filter in /proc/PID/coredump_filter per http://man7.org/linux/man-pages/man5/core.5.html:

Controlling which mappings are written to the core dump

   Since kernel 2.6.23, the Linux-specific /proc/PID/coredump_filter
   file can be used to control which memory segments are written to the
   core dump file in the event that a core dump is performed for the
   process with the corresponding process ID.

   The value in the file is a bit mask of memory mapping types (see
   mmap(2)).  If a bit is set in the mask, then memory mappings of the
   corresponding type are dumped; otherwise they are not dumped.  The
   bits in this file have the following meanings:

       bit 0  Dump anonymous private mappings.
       bit 1  Dump anonymous shared mappings.
       bit 2  Dump file-backed private mappings.
       bit 3  Dump file-backed shared mappings.
       bit 4 (since Linux 2.6.24)
              Dump ELF headers.
       bit 5 (since Linux 2.6.28)
              Dump private huge pages.
       bit 6 (since Linux 2.6.28)
              Dump shared huge pages.
       bit 7 (since Linux 4.4)
              Dump private DAX pages.
       bit 8 (since Linux 4.4)
              Dump shared DAX pages.

   By default, the following bits are set: 0, 1, 4 (if the
   CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS kernel configuration option is
   enabled), and 5.  This default can be modified at boot time using the
   coredump_filter boot option.
like image 56
Andrew Henle Avatar answered Apr 02 '23 04:04

Andrew Henle