AVERTISSEMENT La documentation
MSDN pour le commutateur / debug (dans Visual Studio, il s'agit des informations de débogage) semble être obsolète! C'est ce qu'il a qui est incorrect
Si vous utilisez / debug: full , sachez qu'il y a un impact sur la vitesse et la taille du code optimisé JIT et un petit impact sur la qualité du code avec / debug: full . Nous recommandons / debug: pdbonly ou pas de PDB pour générer le code de version.
Une différence entre / debug: pdbonly et / debug: full est qu'avec / debug: full le compilateur émet un DebuggableAttribute
, qui est utilisé pour indiquer au compilateur JIT que les informations de débogage sont disponibles.
Alors, qu'est-ce qui est vrai maintenant?
- Pdb uniquement - Avant .NET 2.0, il aidait à enquêter sur les vidages sur incident du produit publié (machines clientes). Mais cela n'a pas permis d'attacher le débogueur. Ce n'est pas le cas avec .NET 2.0. C'est exactement la même chose que Full .
- Complet - Cela nous aide à enquêter sur les vidages sur incident et nous permet également d'attacher le débogueur à la version de version. Mais contrairement aux mentions MSDN, cela n'a pas d'impact sur les performances (depuis .NET 2.0). Il fait exactement la même chose que Pdb uniquement .
S'ils sont exactement les mêmes, pourquoi avons-nous ces options? John Robbins (le dieu du débogage de Windows) a découvert qu'ils étaient là pour des raisons historiques.
De retour dans .NET 1.0, il y avait des différences, mais pas dans .NET 2.0. Il semble que .NET 4.0 suivra le même modèle. Après avoir vérifié avec l'équipe de débogage CLR, il n'y a aucune différence.
Ce qui contrôle si le JITter effectue une compilation de débogage est le commutateur / Optimize. <…>
L'essentiel est que vous souhaitez créer vos versions de version avec / Optimize + et l'un des commutateurs / debug afin que vous puissiez déboguer avec le code source.
puis il continue pour le prouver.
Désormais, l'optimisation fait partie d'un commutateur séparé /optimize
(dans Visual Studio, cela s'appelle Optimize code
).
En bref, quel que soit le paramétrage de DebugInfo pdb-only ou full, nous aurons les mêmes résultats. La recommandation est d'éviter None car cela vous priverait de pouvoir analyser les vidages sur incident du produit publié ou de l'attachement du débogueur.