30 votes

Comment savoir si vous êtes dans le débogueur dans VS ?

Duplicata possible :
Quelle est la meilleure façon en c# de déterminer si le programmeur exécute le programme via l'IDE ou son utilisateur ?

Y a-t-il un moyen d'indiquer dans le code si vous utilisez le débogueur dans VS2008 ? J'ai besoin de configurer certaines choses pour nous, développeurs, différemment de ce qui se passe lorsque l'utilisateur exécute l'application "click one deployed". Je vois qu'il y a des choses que vous pouvez faire pour dire si vous êtes en mode Designer mais ce n'est pas la même chose.

Merci ! Bill

58voto

Webleeuw Points 3879

Copie exacte de ma réponse dans le Question connexe :

if (System.Diagnostics.Debugger.IsAttached) { 
    // You are debugging 
}

5voto

Andy Shellam Points 8120

J'ai tendance à séparer le code réservé au débogage en utilisant #debug :

#if DEBUG
    RunMeInDebugModeOnly();
#else
    RunMeInReleaseModeOnly();
#end if

Le #else n'est pas nécessaire et n'est requis que si vous Ne le fais pas. voulez que quelque chose s'exécute en mode Debug.

#if DEBUG
    RunMeInDebugModeOnly();
#end if

Et enfin si vous voulez que le code s'exécute uniquement en mode Release :

#if !DEBUG
    RunMeInReleaseModeOnly();
#end if

Le code contenu dans la clause if #DEBUG n'est pas exécuté lorsque vous l'exécutez dans Visual Studio en mode Release, mais vous ne bénéficiez pas alors de toutes les fonctionnalités du débogueur ;-)

0voto

bitbonk Points 14057

Si vous voulez simplement créer un code différent pour les dlls de débogage, utilisez la définition DEBUG. #if DEBUG

Si vous souhaitez savoir, au moment de l'exécution, si votre code est en cours de débogage, vous pouvez vous connecter à l'aide de la commande DébogueurVisualisateurs

0voto

Timores Points 9916

Vous pouvez obtenir le nom de l'EXE actuel et s'il contient "vshost", vous êtes dans le débogueur.

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