Pour générer le vidage de mémoire sur Busybox, nous pouvons ajouter les paramètres ci-dessous dans le script d'initialisation qui exécute notre exécutable. Donc, chaque fois que nous initialisons le logiciel et exportons des variables d'environnement, nous pouvons copier les lignes ci-dessous dans le script ainsi que vider le noyau au cas où nous verrions un plantage.
Pour définir l'emplacement des vidages mémoire dans Busybox, vous pouvez définir le chemin du fichier mémoire à l'aide du système de fichiers proc. Par exemple, si vous souhaitez des vidages de mémoire dans /tmp/crash/corefiles
:
mkdir -p /tmp/crash/corefiles
chmod 775 /tmp/crash/corefiles
echo "/tmp/crash/corefiles/%e.%s.core" > /proc/sys/kernel/core_pattern
Où les variables sont:
% e est le nom de fichier
% g est le gid sous lequel le processus s'exécutait sous
% p est le pid du processus
% s est le signal qui a provoqué le vidage
% t est le moment où le vidage s'est produit
% u est l'uid sous lequel le processus s'exécutait
En outre, vous devez définir la taille du fichier principal, la commande ci-dessous définit la taille du fichier principal sur illimité
ulimit -c unlimited
Maintenant, pour vérifier la taille de fichier de base définie pour chaque thread dans un processus, nous pouvons vérifier en utilisant
cat /proc/<PID>/limits
La sortie de la commande ci-dessus:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max open files 10000 10000 files
Max address space unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31868 31868 processes
Max locked memory 65536 65536 bytes
Max file locks unlimited unlimited locks
Max pending signals 31868 31868 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Comme nous pouvons le voir sur la sortie ci-dessus, la taille maximale du fichier core est définie sur illimitée.
Pour plus d'informations, veuillez visiter ce lien.
Techniques de débogage d'applications Linux / Fichiers de base