Core dump sous Linux

Je veux créer un core dump chaque fois que mon processus se bloque. Actuellement, je suis la suite de cette approche:

  1. Construire un spécial "debug" version du programme à l'aide de "g" de gcc/g++.
  2. Exécuter "ulimit -c unlimited"
  3. Maintenant, nous obtenons le vidage de la mémoire à chaque fois que le programme se bloque.

Mais je veux minimiser le nombre d'étapes, de sorte que:

  • Core dump devraient toujours obtenir la création. Même si c'est de la "libération" de construire. L'utilisateur ne doit pas être demandé pour exécuter la commande "ulimit -c unlimited" manuellement.
  • Que vidage de la mémoire de la trace doit être en mesure de donner le fichier, la fonction, le numéro de ligne de l'appel. C'est la trace de pile dans une forme lisible par l'homme.
  • Je ne veux pas construire le programme en debug avec l'option "-g". Ou, au moins, il ne devrait pas contenir d'autres informations de débogage qui n'est pas nécessaire de produire le lisible par l'homme trace de la pile. Parce que ce serait une version validée du programme.

J'ai donc deux questions:

  1. Comment créer un core dump dans la "libération" de la construction d'un programme?
  2. Toujours. Sans manuellement l'exécution de la "ulimit -c unlimited"

source d'informationauteur Sabya