using ulimit command, i set core file size.
ulimit -c unlimited
and I compiled c source code using gcc - g option. then a.out generated. after command
./a.out
there is runtime error .
(core dumped)
but core file was not generated.(ex. core.294340)
how to generated core file?
First make sure the container will write the cores to an existing location in the container filesystem. The core generation settings are set in the host, not in the container. Example:
will generate cores in the folder /cores.
In your Dockerfile, create that folder:
You need to specify the core size limit; the ulimit shell command would not work, cause it only affects at the current shell. You need to use the docker run option --ulimit with a soft and hard limit. After building the Docker image, run the container with something like:
where coredumps_volume is a volume you already created where the core will persist after the container is terminated. E.g.
If you want to generate a core dump of an existing process, say using
gcore
, you need to start the container with--cap-add=SYS_PTRACE
to allow a debugger running as root inside the container to attach to the process. (For core dumps on signals, see the other answer)