Le débogage est un outil très utile pour inspecter l'état des objets et des variables dans votre code au moment de l'exécution.
Comme mentionné précédemment dans les réponses ci-dessus, le débogage est extrêmement utile, mais dans certains cas, il est limité.
D'après mon expérience, utiliser le débogueur est très utile car il permet de révéler de fausses hypothèses sur l'état de mon code. Certaines personnes ne sont pas aussi habiles à lire le code pour trouver un bogue, aussi le débogage peut-il aider à révéler de fausses hypothèses que vous ou un autre développeur avez faites sur l'état du code.
Vous vous attendez peut-être à ce qu'un paramètre ne soit jamais nul lorsqu'il est passé à une méthode. Vous ne devez donc jamais vérifier ce cas et poursuivre dans la méthode comme si ce paramètre ne serait jamais nul. La réalité est que ce paramètre finira par être null à un moment donné, même si vous définissez comme pré-condition à la méthode que le paramètre ne doit jamais être null. Cela arrivera toujours.
Contrairement à l'utilité des débogueurs dans les exemples mentionnés ci-dessus, je trouve qu'il est difficile et plutôt inutile d'utiliser lorsque plusieurs processus sont impliqués (multi-threading (c'est-à-dire, concurrence, traitement asynchrone)). Cela peut aider, mais il est facile de perdre votre orientation dans le brouillard multithread lorsque les points d'arrêt du débogueur sont atteints dans un thread au point A et un thread complètement séparé au point B. Le développeur est obligé de pousser le nouveau point d'arrêt " processus de pensée "sur le dessus de la" pile "de son cerveau et s'orienter vers le code à la pointe du nouveau point d'arrêt. Lorsque la pertinence du point d'arrêt B diminue, le développeur revient au premier point d'arrêt et doit rappeler ce qu'il recherchait avant le déclenchement du point d'arrêt B. Je sais que cela peut prêter à confusion,
De plus, l'imprévisibilité du code concurrent peut distraire davantage le développeur lors du débogage du code concurrent.
En conclusion, à mon avis honnête:
- Débogage lorsque la simultanéité est utilisée = tendance accrue à perdre le focus du "modèle de pensée de débogage"
et
- anytime else = productivité de débogage accrue, votre attention n'est pas interrompue par des points d'arrêt imprévus (inattendus en raison des conditions de concurrence).