Reputation: 7841
I am using Ubuntu 12.04 LTS. I wrote a simple program as follows to create crash
// null.c
#include<stdio.h>
int main()
{
int *p = NULL;
int k=*p;
printf("%d",sizeof(0));
return 0;
}
Now I run with "gcc -g null.c" and then "./a.out" and the output is as expected.
Segmentation fault (core dumped)
Now I want to see the core dump file using gdb. I did the following things
I want to create the core dump in my current directory. What to do now?
Upvotes: 10
Views: 12316
Reputation: 477
My understanding is that using ulimit is not permanent, i.e. if you reboot then the limit goes back to 0. To have unlimited permanent, you need to change /etc/security/limits.conf. Similarly for core pattern etc, change /etc/sysctl.conf.
Upvotes: 1
Reputation: 537
you do not need to use core pattern. its just dumps in that format %e.%p
what you need to do is #ulimit -c unlimited
and check #ulimit -a
and confirm if core file size is set properly. You will get the core as core.pid after that.
Upvotes: 2
Reputation: 213646
Your real question appears to be not "where is my core dump", but rather "how can I modify /proc/sys/kernel/core_pattern
".
sudo bash -c 'echo core.%e.%p > /proc/sys/kernel/core_pattern'
should do the trick.
Upvotes: 27
Reputation: 6095
You need to adjust your core dump size limit with following command:
ulimit -S -c maximum-core-dump-size
The the value is given in Kb.
Upvotes: 4