Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Abonnements

Comment débugger un programme de génération de code utilisé dans VS ?

Dans mon cas, il s'agit de la customisation de mon générateur de code à partir de l'edmx, mais la méthode que je propose s'applique à bien d'autre cas.

Comment faire pour débuguer le CodeGen qui s'exécute directement dans VS ?

J'ai trouvé une petite feinte qui me plait bien Wink (il y a probablement une façon plus "conventionnelle" de faire ça).

Pour ma part, je met dans mon générateur de code un MessageBox.Show qui aura pour effet de suspendre la génération.

  • J'ouvre 2 VS : un pour le générateur de code et un pour utiliser mon programme de génération.
  • Dans le deuxième je fais appel à mon générateur (dans le cas du générateur de code à partir de l'edmx, il me suffit de changer le Custom Tool). La génération me lance la MessageBox.
  • De là, je retourne sur mon premier VS, j'attache le process DevEnv du deuxième VS, je met un point d'arrêt juste après le MessageBox.Show
  • Je retourne sur mon premier VS et je clique sur Ok dans ma MessageBox
  • Je retourne sur mon premier VS, je suis sur mon point d'arrêt et je peux maintenant débuguer dans mon générateur de code

Nice Wink

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Publié jeudi 21 août 2008 13:27 par Matthieu MEZIL

Commentaires

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ jeudi 21 août 2008 17:50

Peut-être une idée en l'air mais plutôt que de mettre une MessageBox, ce serait pas plus simple de passer par System.Diagnostics.Debugger.Break(); ?

Thomas LEBRUN

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ jeudi 21 août 2008 17:57

Devancé de peu,

j'allais justement écrire :

ne serait-ce pas une bonne occasion de mettre :

if (System.Diagnostics.Debugger.IsAttached)

   System.Diagnostics.Debugger.Break();

else

   System.Diagnostics.Debugger.Launch();

(cela dit c'est vrai que le "Launch" ne sert à rien si on est systématiquement dans Visual Studio)

Troborg

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ jeudi 21 août 2008 18:27

C'est une bonne idée mais par contre, on est obligé de lancer les 2 VS.

Dans mon cas, je lançais généralement que le deuxième et je cliquais sur OK et si je n'avais pas le résultat attendu, je lançais également le premier pour tester.

Matthieu MEZIL

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ jeudi 21 août 2008 19:32

Je trouve plus simple de lancer le deuxième Visual Studio à partir du premier : comme quand tu débug une appli normale, sauf que tu lui fait lancer Visual Studio. Ca évite attach to process + attente de la MessageBox ou le Debug.Break et c'est beaucoup plus simple :). A moins que dans ce cas précis ça ne marche pas, mais pour voir des problèmes dans des contrôles qui s'affichent dans le designer c'est en général ce que je fait.

findufin

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ jeudi 21 août 2008 21:35

@finfufin:

Super mais tu fais comment ?

C'est pour ça que j'avais dit "il y a probablement une façon plus "conventionnelle" de faire ça"

Matthieu MEZIL

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ vendredi 22 août 2008 10:03

System.Diagnostic.Debug.Fail() (à mettre en compilaion conditionnelle : #if DEBUG) est le truc ultime : ca permet d'inviter à attacher un debugger via la même popup que celle d'IE quand un script JS foire ^^. Donc tu lance ton VS, tu utilises ton composant et automatiquement il te propose d'attacher un debugger (une 2e instance de VS par exemple).

C'est une astuce que j'utilise pour débugger code de démarrage de mes services Windows.

simon ferquel

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ vendredi 22 août 2008 10:05

Sinon y'a aussi l'onglet "debug" des propriétés de ton projet, qui permet de lancer un exécutable externe et de s'y attacher...

simon ferquel

# re: Comment débugger un programme de génération de code utilisé dans VS ? @ vendredi 22 août 2008 14:44

Merci pour ces infos Simon, je vais tester ça Smile

Matthieu MEZIL

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [SharePoint] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 42 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59