web-dev-qa-db-fra.com

Où trouver le core dumps à partir du code compilé gcc et g ++?

J'ai compilé du code C, une fois avec gcc, puis avec g ++, ce qui m'a donné deux fichiers exécutables en sortie. Lors de l'exécution des deux fichiers, j'ai constaté que cela me disait:

Segmentation fault (core dumped)

Mais il n'y a aucun signe de core dump dans /var/crash à faire avec cela (seulement des vieux trucs), alors où serait-il (je ne m'attendrais pas à ce qu'ils soient là, mais je pensais juste mentionner avait vérifié)? J'utilise Ubuntu GNOME 16.04 avec GNOME 3.20.

1
user364819

Le core dump est désactivé par défaut dans Ubuntu en définissant la taille maximale du fichier de dump sur 0 pour tous les utilisateurs.

Vous pouvez vérifier cela par:

ulimit -c

Par défaut, il afficherait 0.

Maintenant, pour activer la sauvegarde du noyau, définissez la taille sur la valeur souhaitée (ou unlimited).

Par exemple, définissez la taille maximale du fichier de vidage sur 4 Ko:

ulimit -c 8

-c prend les numéros de bloc, chaque bloc ayant une valeur de 512 octets.

Réglage sur unlimited (non recommandé):

ulimit -c unlimited

Cela modifiera la limite pour l'utilisateur actuel et non de manière permanente. Pour que les modifications prennent effet de manière sélective et permanente pour les utilisateurs, vous devez modifier le fichier /etc/security/limits.conf et définir les valeurs souhaitées.

2
heemayl