GNU/Linux >> Tutoriels Linux >  >> Linux

Activer les vidages mémoire/crash par programme

J'ai trouvé une solution de travail. Les fichiers principaux sont en cours de création.

struct rlimit core_limit;
core_limit.rlim_cur = RLIM_INFINITY;
core_limit.rlim_max = RLIM_INFINITY;

if (setrlimit(RLIMIT_CORE, &core_limit) < 0)
    fprintf(stderr, "setrlimit: %s\nWarning: core dumps may be truncated or non-existant\n", strerror(errno));

Le crédit va ici :http://adamrosenfield.com/blog/2010/04/23/dumping-core/


si vous souhaitez vérifier votre limite actuelle pour votre processus que

struct rlimit  v;   //you can decelare any variable

getrlimit(RLIMIT_CORE, &v);

printf("softlimit=%d   hardlimit=%d  \n",v.rlim_cur,v.rlim_max);

si vous souhaitez définir une nouvelle limite, utilisez le code ci-dessous

//////////////////// définir la limite /////////////////////////// ///

faisons simple

struct rlimit v;
v.rlim_cur = 0 ;  //if you do not want the core dump file

/*  v.rlim_cur=RLIM_INFINITY;    //set maximum soft limit of the file(unlimited) */

v.rlim_max = RLIM_INFINITY;    //for reference to the soft limit(unlimited)

setrlimit(RLIMIT_CORE, &v);

Une valeur de rlim_cur est compris entre 0 et l'infini signifie que les vidages mémoire seront générés et tronqués à la taille spécifiée. Cela risque de créer un vidage mémoire incomplet


Linux
  1. Comment transformer un fichier tar en fichier Tgz ?

  2. Comment provoquer par programme un core dump en C/C++

  3. Obtenir la vitesse du lien par programmation ?

  4. Format de fichier de vidage de mémoire

  5. GDB et problèmes avec les vidages mémoire

Une introduction aux utilitaires GNU Core

Composants principaux d'un cluster Kubernetes

Comment installer Windows PowerShell Core 6.0 sous Linux

Comment activer le mode sombre dans Firefox

Interprétation des noms de capteur

Désactiver --skip-grant-tables dans MySQL