When I am running code on a container it cores I am not able to locate it on my container(or the core file is not being stored).
ulimit -c
is set to unlimited
/proc/sys/kernel/core_pattern
is set to
|/usr/share/apport/apport %p %s %c %P
(what is the meaning of |
?)Do I need to make any changes in/to the host system?
|
indicates that a program should handle the core dump. Rather than saving the coredump to a file it will be piped into that programs input. Means if core_pattern
is set to |... apport
apport
will handle the core dumps.
Unfortunately apport
will create coredumps only for installed
packages. I would set the pattern to a file name, like this:
echo '/tmp/cores/core.%e.%p.%t' > /proc/sys/kernel/core_pattern
The would give you coredumps like /tmp/core.program.pid.012345678
where program
is the program name, pid
the program's pid plus a timestamp at the end.
Check man core
for more information (espcecially information about meta chars that can be used in the core pattern.