les coredump sous Linux

Sous FreeBSD les coredump sont automatiquement générés, voyez plutôt l’entrée default de /etc/login.conf(5) avec le coredumpsize=unlimited.

Pour faire la même chose sous Linux (en l’occurrence sur Archlinux ce n’est pas le cas par defaut) :

Dans /etc/sysctl.conf :

kernel.core_pattern = %e.core

Et pour rendre la taille des .core illimitée j’ai édité mon ~/.zprofile :

ulimit -c unlimited

Et pour rendre les changement effectifs :

sysctl kernel/core_pattern=%e.core
# Si vous n'avez pas sysctl :
echo "%e.core" | sudo tee /proc/sys/kernel/core_pattern
# et on se reconnecte

Et pour tester :

cat > foo.c << EOF
#include <stdlib.h>
int main(void) { char *p = malloc(sizeof(*p)); free(p+1); return 0; }
EOF
cc foo.c && ./a.out
[.....]
zsh: abort (core dumped)  ./a.out
# \o/
gdb ./a.out a.out.core
....