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
....