I have a C++ program that does what it is supposed to do, but there must be some problem with pointer, since it crashes at the end and creates a core dump. My problem is that I cannot find the core file, so I cannot debug it.
I have tried
ulimit -c unlimited
ulimit -a
and now the dimension of the file is set to unlimited, but still I cannot find the core. I have tried in every folder written here but still it seems that no core file is created.
Where can I find it?
In Ubuntu the core dumps are handled by Apport and can be located in
/var/crash/
. But it is disabled by default in stable releases.To enable Apport, run:
sudo systemctl enable apport.service
orsudo service apport start
.To disable, run:
sudo systemctl disable apport.service
orsudo service apport stop
in order to back to regular core dumping method. See: How do I enable or disable Apport?.To disable permanently, edit
/etc/apport/crashdb.conf
file and comment the following line:by adding a hash symbol (
#
) in the beginning of the line.To disable crash reporting (back to normal), remove the hash symbol (the same as it was).
You can also check
core_pattern
, how core dumps are handled by the kernel:So even core files are disabled by
ulimit
,apport
will still capture the crash.See also:
All the above did not worked for me... I looked at
/var/log/apport.log:
and I saw the file name:
and then I search throughout all the system
I found the core dump in
/var/lib/apport/coredump/
For those googlin': ( in my case -- Ubuntu 16.04 and 18.04 and a custom app )
/var/crash
was still empty, so a quick way to handle core creation ( provided that you are e.g. using a relevant ulimit builtin setting ) wasand
Sources: