35 votes

Quelque chose ne va pas avec la libération de logiciels en mode débogage?

Nous savons tous que "Debug Mode" doit être utilisé pour le développement, car le compilateur génère davantage d'informations de débogage et de "mise en Mode" doit être utilisé pour la production de rejets, car le compilateur produit du code optimisé.

Cependant, disons que si vous effectuez un logiciel qui est uniquement utilisé en interne au sein de l'organisation et les performances du code n'est pas un énorme problème parce que le logiciel a besoin pour faire beaucoup d'e/S de fichier de base de données et des requêtes. Je serai très tenté de simplement publier le logiciel en "Mode Debug" dans ce scénario, car ces informations de débogage supplémentaires fait de l'avenir de l'entretien un peu plus facile.

Il y a encore une raison majeure pour la diffusion des logiciels en mode release, dans ce cas?

29voto

user116937 Points 241

Deux préoccupations, que je pense:

  1. Debug souvent ajouter rembourrage pour les tampons. C'est pourquoi, parfois, vous obtenez des programmes qui semblent travailler en debug, mais planter dans le communiqué. Semble est le mot clé ici, comme les dépassements de mémoire tampon sont juste un accident en attente de se produire.

  2. Des choses étranges se produisent dans les versions de débogage. Une fois, j'ai travaillé sur une longue application en cours d'exécution qui s'écrasera tous les vingt jours. Il s'avère que dans le runtime C un compteur (utilisé à l'aide de débogage)) est incrémenté chaque fois qu'un malloc/free a été réalisée. Si le compteur est arrivé à débordement - kaboom! Pour cette seule raison, je ne recommanderais jamais à quiconque de déployer debug binaires - on ne sait jamais quelles surprises peut-être en attente de votre client.

15voto

Shane Powell Points 6235

Raisons possibles:

  1. Debug n'est normalement pas compilé pour la performance
  2. Débogage de la taille de l'application (normalement), est beaucoup plus grande que la version compile.
  3. Si quelqu'un essaie de désosser votre application (pour quelque raison que ce soit), alors il devient beaucoup plus facile.

Mise à JOUR: 4. Comme l'a souligné, l'éditeur de liens de performance, mais j'aurais pensé que cela pourrait être chemin en bas de la liste :p Combien de fois avez-vous communiqué un produit par rapport à faire de débogage compile?

Si vous êtes prêt à renoncer à la ci-dessus, alors il n'y a pas de véritable raison pourquoi pas.

10voto

Mark Canlas Points 4698

Le simple fait que vous posez la question suggère que vous souhaitez tirer parti du mode Débogage. Si ces avantages l'emportent sur votre culpabilité morale, je vous prie de le faire. Ces avantages sont probablement mécaniques, informatifs et pertinents pour votre travail. Le manque de culpabilité ne vous aide pas vraiment à produire de meilleurs logiciels. Cela pourrait vous aider à mieux dormir, mais qui s'en soucie?

5voto

Garrett Points 905

Je n'ai pas d'objection personnelle à l'expédition de la version de Débogage à l'interne, à condition qu'il fonctionne (certaines versions de Débogage ne fonctionne pas sur les non-dev machines w/o installer également le correspondant bibliothèques de débogage... a fonctionné lorsque j'ai programmé en C++/MFC code).

Un peu plus sophistiqué de l'approche est d'utiliser un serveur de symbole, celui qui est mis à jour avec des symboles automatiquement par votre processus de création.

Si vous étiez le débogage d'un problème de la machine d'un client, le point de la lumière-poids débogueur à votre serveur de symbole (assurez-vous que les versions de match), puis démarrer le débogage.

5voto

Alan Jackson Points 3420

Je suppose qu'il y a beaucoup plus de code de débogage installé que ce que nous (les développeurs) sommes disposés à admettre.

Personnellement, je connais beaucoup de systèmes de production qui se déploient sur des clients avec du code compilé en mode débogage.

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