Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

tutoriel:programmation:deboguage:bash:start [2022/06/05 10:19] – [Comment rediriger le rapport de débogage vers un fichier] admintutoriel:programmation:deboguage:bash:start [2022/08/13 22:15] (Version actuelle) – modification externe 127.0.0.1
Ligne 463: Ligne 463:
 C'est un peu délicat car rediriger le rapport de débogage vers un fichier ; nous utilisons des variables spéciales. C'est un peu délicat car rediriger le rapport de débogage vers un fichier ; nous utilisons des variables spéciales.
  
-Implémentons-le sur le code b_script.sh :+Implémentons-le sur le code b_script.sh :<code - > 
 +#! /bin/bash 
 +exec 5> debug_report.log 
 +PS4='$LINENO-- ' 
 +BASH_XTRACEFD="5" 
 +echo "Enter number1" 
 +read number1 
 +echo "Enter number2" 
 +read number2 
 +if [ "$number1" -gt "$number2"
 +then 
 +echo "Number1 greater than number2" 
 +elif [ "$number1" -eq "$number2"
 +then 
 +echo "Number1 is equal to Number2" 
 +else 
 +echo "Number2 is greater than Number1" 
 +fi</code> 
 + 
 +Dans la deuxième ligne de code, vous pouvez voir que nous redirigeons la sortie vers le fichier debug_report.log à l'aide de la commande exec avec le descripteur de fichier 5 (FD5). 
 + 
 +  * **exec 5> debug_report.log** : Dans exec , la commande redirige tout ce qui se passe dans le shell vers le fichier debug_report.log. 
 +  * **BASH_XTRACEFD = 5** : variable spécifique à bash qui ne peut être utilisée dans aucun autre shell. Un descripteur de fichier valide doit lui être attribué et bash écrira la sortie extraite dans debug_report.log. 
 +  * **PS4='$LINENO– '** : variable bash utilisée pour imprimer le numéro de ligne lors du débogage en mode xtrace. PS4 par défaut : signe + 
 + 
 +Le script ci-dessus crée un fichier journal nommé debug_report.log, pour le lire, utilisez la commande cat :<cli prompt='$ '>...@...:~ $ bash -x b_script.sh  
 ++ exec 
 ++ PS4='$LINENO-- ' 
 +4-- BASH_XTRACEFD=5 
 +Enter number1 
 +
 +Enter number2 
 +
 +Number2 is greater than Number1 
 +...@...:~ $  cat debug_report.log  
 +5-- echo 'Enter number1' 
 +6-- read number1 
 +7-- echo 'Enter number2' 
 +8-- read number2 
 +9-- '[' 4 -gt 5 ']' 
 +12-- '[' 4 -eq 5 ']' 
 +16-- echo 'Number2 is greater than Number1' 
 +</cli>
 ===== Pré-requis ===== ===== Pré-requis =====
  
Ligne 473: Ligne 515:
 ===== Conclusion ===== ===== Conclusion =====
  
 +Un code plein d'erreurs peut affecter les performances du programme ou nuire au matériel.\\
 +Le débogage est très important pour chaque programme car il le rend plus efficace.\\
 +La détection de bogues existants et potentiels pendant le développement du programme peut empêcher un comportement inattendu dans votre programme.\\
 +Les codes volumineux nécessitent généralement un débogage actif, ce qui améliore l'efficacité du code en éliminant les fragments de code consommateurs de ressources.
 +
 +De nombreux langages de programmation et frameworks ont leurs propres débogueurs compagnons.\\
 +Les scripts bash peuvent implémenter diverses méthodes de débogage de script.\\
 +Ce guide détaille toutes les méthodes qui peuvent être utilisées pour trouver des erreurs dans les scripts bash.\\
 +Donc, chaque fois que vous sentez que votre script bash ne fonctionne pas comme prévu, utilisez l'une des méthodes mentionnées ci-dessus, mais dans la plupart des cas, le mode xtrace (-x) est très utile.
 ===== Problèmes connus ===== ===== Problèmes connus =====