R Language                
            Le débogage
        
        
            
    Recherche…
Utiliser le navigateur
 La fonction de browser peut être utilisée comme un point d'arrêt: l'exécution du code s'interrompt au point appelé. L'utilisateur peut alors inspecter les valeurs de variable, exécuter du code R arbitraire et parcourir le code ligne par ligne. 
 Une fois que browser() est entré dans le code, l'interpréteur interactif démarrera. Tout code R peut être exécuté normalement, et les commandes suivantes sont également présentes: 
| Commander | Sens | 
|---|---|
| c | Quitter le navigateur et continuer le programme | 
| F | Terminer la boucle ou la fonction en cours \ | 
| n | Pas à pas (évaluer l'instruction suivante, passer outre les appels de fonctions) | 
| s | Pas à pas (évaluation de l'instruction suivante, passage aux appels de fonctions) | 
| où | Trace de pile d'impression | 
| r | Invoquer "reprendre" redémarrer | 
| Q | Quittez le navigateur et quittez | 
Par exemple, nous pourrions avoir un script comme,
toDebug <- function() {
    a = 1
    b = 2
    
    browser()
    
    for(i in 1:100) {
        a = a * b
    }
}
toDebug()
Lors de l'exécution du script ci-dessus, nous voyons initialement quelque chose comme:
Called from: toDebug
Browser[1]>
Nous pourrions alors interagir avec l'invite en tant que telle,
Called from: toDebug
Browser[1]> a
[1] 1
Browser[1]> b
[1] 2
Browse[1]> n
debug at #7: for (i in 1:100) {
    a = a * b
}
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 1
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 2
Browse[2]> Q
 browser() peut également être utilisé dans le cadre d'une chaîne fonctionnelle, comme ceci: 
mtcars %>% group_by(cyl) %>% {browser()}
Utiliser le débogage
 Vous pouvez définir n'importe quelle fonction pour le débogage avec debug . 
debug(mean)
mean(1:3)
 Tous les appels ultérieurs à la fonction entreront en mode débogage. Vous pouvez désactiver ce comportement avec undebug . 
undebug(mean)
mean(1:3)
 Si vous savez que vous souhaitez uniquement entrer dans le mode de débogage d'une fonction, envisagez l'utilisation de debugonce . 
debugonce(mean)
mean(1:3)
mean(1:3)