145 votes

Pourquoi le débogage est-il meilleur dans un IDE?

J'ai été un développeur de logiciels depuis plus de vingt ans, de la programmation en C, Perl, SQL, Java, PHP, JavaScript, et récemment Python. Je n'ai jamais eu de problème je ne pouvais pas débogage à l'aide de certains de réflexion, et bien placé débogage print des déclarations.

Je respecte que beaucoup de gens disent que mes techniques sont primitifs, et à l'aide d'un véritable débogueur dans un IDE est beaucoup mieux. Pourtant, d'après mon observation, IDE les utilisateurs ne semblent pas déboguer plus vite ou mieux que je peux, à l'aide de mes couteaux de pierre et la peau d'ours. Je suis sincèrement ouverts à l'apprentissage des bons outils, je n'ai simplement jamais été montré une irrésistible avantage de l'utilisation de visual débogueurs.

De plus, je n'ai jamais lu un tutoriel ou un livre qui a montré comment déboguer efficacement en utilisant un IDE, au-delà des rudiments de la façon de définir des points d'arrêt et d'afficher le contenu des variables.

Ce qui me manque? Ce qui rend IDE outils de débogage de manière beaucoup plus efficace que l'utilisation réfléchie de diagnostic print des déclarations?

Pouvez-vous suggérer des ressources (tutoriels, des livres, des screencasts) qui montrent que la plus fine des techniques de l'IDE de débogage?


Sweet réponses! Merci beaucoup à tout le monde de prendre le temps. Très éclairante. J'ai voté nombreuses, et a voté aucun bas.

Quelques points importants:

  • Débogueurs peut m'aider à faire ad hoc de l'inspection ou de la modification de variables, de code, ou de tout autre aspect de l'environnement d'exécution, alors que le manuel de débogage m'oblige à arrêter, modifier et ré-exécuter l'application (ce qui peut nécessiter la recompilation).
  • Débogueurs peut s'attacher à un processus en cours d'exécution ou de l'utilisation d'un vidage sur incident, alors qu'avec le manuel de débogage, "étapes pour reproduire le" défaut sont nécessaires.
  • Débogueurs pouvez afficher des structures de données complexes, les environnements multi-threads, ou plein d'exécution des piles facilement et en plus de manière lisible.
  • Débogueurs offre de nombreuses façons de réduire le temps et le travail répétitif à faire à peu près tout le débogage des tâches.
  • Visual débogueurs et console débogueurs, à la fois utiles, et ont de nombreuses caractéristiques en commun.
  • Un visual debugger intégré dans un environnement de développement intégré vous donne également un accès pratique à d'édition intelligent et toutes les autres fonctionnalités de l'IDE, dans un seul environnement de développement intégré (d'où le nom).

111voto

LeopardSkinPillBoxHat Points 11851

Quelques exemples de certaines capacités qu'un débogueur IDE vous donnera plus de messages de trace dans le code:

  • Afficher la pile des appels à n'importe quel point dans le temps, vous donnant un contexte de votre cadre de pile.
  • Étape dans les bibliothèques que vous n'êtes pas en mesure de re-compiler pour l'application de l'ajout de traces (en supposant que vous avez accès à des symboles de débogage)
  • Modifier les valeurs de variables , tandis que le programme est en cours d'exécution
  • Modifier et continuer - la possibilité de modifier le code en cours d'exécution et de voir immédiatement les résultats du changement
  • Être en mesure de regarder des variables, voir quand ils changent de
  • Être en mesure de sauter ou de répéter des sections de code, pour voir comment le code s'effectuer. Cela vous permet de tester les changements théoriques avant de les faire.
  • Examiner le contenu de la mémoire en temps réel
  • Vous alerter lorsque certaines exceptions sont jetés, même si elles sont gérées par l'application.
  • Conditionnel breakpointing; l'arrêt de l'application que dans des circonstances exceptionnelles pour vous permettre d'analyser la pile et de variables.
  • Vue le contexte de thread dans les applications multi-thread, ce qui peut être difficile à réaliser avec des recherches (comme les traces de différents threads s'affichera dans la sortie).

En résumé, imprimer les relevés de compte sont (en général), statique , et vous aurez besoin de re-compiler pour obtenir des informations supplémentaires si votre original déclarations n'étaient pas suffisamment détaillées. L'IDE supprime cette barrière statique, vous donnant une dynamique trousse à outils à portée de main.

Quand j'ai commencé à coder, je n'arrivais pas à comprendre quel est le big deal avec des débogueurs et je pensais que je pouvais réaliser quelque chose avec de traçage (certes, c'était sur unix et le débogueur a été GDB). Mais une fois que vous apprendre à bien utiliser un débogueur graphique, vous ne voulez pas revenir en arrière pour imprimer les relevés.

35voto

recursive Points 34729
  • Une IDE de débogueur permet de changer l' les valeurs des variables au moment de l'exécution.

  • Un IDE le débogueur permet de voir la valeur de les variables que vous ne savais pas que tu voulais à voir lors de l'exécution a commencé.

  • Un IDE le débogueur permet de voir la pile d'appel et examiner l'état de la fonction adopté des valeurs étranges. (pense que cette fonction est appelée à partir de des centaines d'endroits, vous ne savez pas où ces valeurs étranges sont à venir à partir de)

  • Une IDE de débogueur permet d' conditionnellement pause l'exécution à tout point de code, basé sur une condition, pas un numéro de ligne.

  • Une IDE de débogueur vous permettra d'examiner l'état du programme dans le cas d'une exception non gérée au lieu de simplement chier.

17voto

galets Points 4119

Voici une chose que vous ne pouvez certainement pas déboguer avec l'instruction "print": lorsqu'un client vous rapporte un vidage de mémoire et dit "votre programme est tombé en panne, pouvez-vous me dire pourquoi?"

14voto

DarkwingDuck Points 1734
  • Imprimer des instructions tout au long de votre code réduit la lisibilité.
  • Leur ajout et leur suppression à des fins de débogage prennent beaucoup de temps
  • Les débogueurs suivent la pile d'appels, ce qui permet de voir plus facilement où vous vous trouvez
  • Les variables peuvent être modifiées à la volée
  • Les commandes ad hoc peuvent être exécutées pendant une pause dans l'exécution pour faciliter le diagnostic
  • Peut être utilisé en même temps que des instructions d'impression: Debug.Write ("...")

6voto

Kevin Pang Points 16019

Du haut de ma tête:

  1. Débogage d'objets complexes - Les débogueurs vous permettent de pénétrer profondément dans les entrailles d'un objet. Si votre objet possède, par exemple, un tableau de tableau d'objets complexes, les instructions d'impression ne vous mèneront que jusqu'à présent.
  2. La possibilité de dépasser le code - Les débogueurs vous permettront également d'ignorer le code que vous ne voulez pas exécuter. Certes, vous pouvez également le faire manuellement, mais vous devez injecter beaucoup plus de code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X