Quel est le nom approprié pour effectuer le débogage en ajoutant des instructions 'print'

StackOverflow https://stackoverflow.com/questions/189562

  •  06-07-2019
  •  | 
  •  

Question

Il existe de nombreuses façons de procéder au débogage. L’utilisation d’un débogueur en est une, mais la méthode la plus simple pour les programmeurs humbles et paresseux consiste simplement à ajouter de nombreuses instructions print à votre code.

c'est-à-dire

 def foo(x):
     print 'Hey wow, we got to foo!', x

     ...

     print 'foo is returning:', bar
     return bar

Existe-t-il un nom approprié pour ce style de débogage?

Était-ce utile?

La solution

Oui, il est appelé printf () débogage , nommé d'après la fonction C omniprésente:

  

Utilisé   décrire le travail de débogage effectué par   l'insertion de commandes qui produisent plus ou   statut moins soigneusement choisi   informations aux points clés de la   flux de programme, en observant que   informations et déduire ce qui ne va pas   sur la base de cette information.

- débogage de printf () @ tout2

Les utilisateurs natifs d'autres langues s'y réfèrent sans doute par la commande print / log / trace par défaut disponible pour la plate-forme de codage de leur choix, mais j'ai entendu le message " printf () " Nom utilisé pour désigner cette technique dans de nombreuses langues autres que le C. C'est peut-être dû à son histoire: alors que BASIC et FORTRAN avaient des commandes de base PRINT , C nécessitait généralement un peu plus de travail pour formater divers types de données: printf () était (et est toujours toujours) de loin le moyen le plus pratique à cette fin, offrant de nombreuses options de formatage intégrées. Son cousin, fprintf () , prend un autre paramètre, le flux sur lequel il écrit: cela permettait de procéder à un "débogueur" prudent. diriger les informations de diagnostic vers stderr (éventuellement lui-même redirigé vers un fichier journal) tout en laissant la sortie du programme non corrompue.

Bien que souvent méprisé par les utilisateurs des logiciels de débogage modernes, le débogage printf () continue de se révéler indispensable: le très populaire outil FireBug pour le navigateur Web Firefox (et des outils similaires maintenant disponibles pour d'autres navigateurs) est construit autour d'une console fenêtre dans laquelle les scripts de page Web peuvent consigner des erreurs ou des messages de diagnostic contenant des données formatées.

Autres conseils

J'ai entendu parler de débogage Caveman

Je pensais que la citation suivante serait à propos:

"L'outil de débogage le plus efficace reste une matière à réflexion, associée à des instructions d'impression judicieusement placées."

  • Brian Kernighan, "Unix pour les débutants" (1979)

Je l'appelle le traçage.

moi et mes coéquipiers l'appelons le "débogage à l'ancienne".

Débogage du siège de votre pantalon :)

Lorsque vous êtes sur un système embarqué, lorsque vous êtes à la pointe de la technologie et que le langage que vous codez n’a pas encore de débogueur, lorsque votre débogueur se comporte étrangement et que vous souhaitez restaurer un peu de bon sens, et vous voulez comprendre comment fonctionne la ré-entrée dans le code multi-thread, ....

Au même sens que la programmation exploratoire , j'aime bien l'appeler débogage exploratoire . Ceci s’ensuit lorsque le débogueur n’est pas assez puissant pour examiner des types complexes dans le programme, ou appeler des fonctions auxiliaires séparément, ou que vous ne connaissez pas suffisamment le bogue pour utiliser directement lesdites fonctionnalités.

J'appelle cela "Bonjour maman" programmation.

J'ai également entendu le terme "Débogage de MessageBox" dans la communauté VB pour désigner ce "style" de "débogage".

J’ai intégré les systèmes, c’est souvent la seule méthode pour instrumenter le code. Malheureusement, l’impression prend du temps et affecte le flux en temps réel du système. Nous avons donc également instrumenté via "traçage". où des informations sur l'état du système (sortie d'entrée de fonction, etc.) sont écrites dans une mémoire tampon interne pour être vidées et analysées ultérieurement. Les vrais programmeurs embarqués peuvent déboguer en faisant clignoter une DEL;)

J'ai entendu le " débogage Gutenberg ". utilisé, en l'honneur de le type qui a inventé l'imprimerie .

Je l'appellerais simplement " journalisation ".

Je parle habituellement de traçage.

Notez que dans Visual Studio, vous pouvez définir des points d'arrêt qui ne font qu'ajouter un traçage. Cliquez avec le bouton droit de la souris sur un point d'arrêt, sélectionnez " lorsque vous cliquez sur ... " et cochez la case "Imprimer un message". option.

De plus, dans .Net, vous pouvez ajouter des instructions de débogage (je pense qu’il s’agit en fait de Debug.WriteLine) à afficher sur la console. Ces instructions ne sont incluses que dans les versions de débogage - le compilateur les laissera automatiquement en dehors de la compilation.

Débogage classique

Assertions manuelles? La phobie du débogueur?

débogage détaillé!

(Une bonne journalisation est extrêmement utile pour résoudre les problèmes liés au fonctionnement des systèmes de production. De nombreuses instructions d'impression verbeuses inutiles ne le sont pas, mais il est extrêmement important de journaliser quelque chose d'intéressant lorsqu'un événement important ou inattendu se produit. Si vous avez un problème avec un débogueur, vous vous retrouverez dans une situation délicate lorsque le service que vous avez créé est interrompu pour certains de vos utilisateurs, mais vous ne pouvez pas reproduire le problème localement.)

Je l'ai toujours connu sous le terme de "débogage rapide et sale" ou simplement de "débogage encrassé" en bref.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top