IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ecrire un débogueur c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur Indépendant en IA
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chercheur Indépendant en IA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Par défaut Ecrire un débogueur c#
    Bonjour,

    Je voudrais ré-écrire un débogueur C# simplifié.

    A partir d'un code source syntaxiquement correct, je voudrais exécuter pas à pas chaque instruction et avoir accès en temps réel au contenu des variables.

    Quelqu'un a-t-il déjà écrit un débogueur c# ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Comment dire... soit t'es super motivé, soit tu ne te rends pas du tout compte de la difficulté de la tâche ! Pourquoi tu veux faire ça au juste ? Le compilateur de Visual Studio te convient pas ?

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    tu souhaite partir d'un "code source syntaxiquement correct" cela veut dire qu'il reste encore la génération du Bytecode, c'est plus proche la phase terminal d'un compilateur que d'un débogueur !

    Il va sans dire que tu sais donc récupérer les données de l'arbre syntaxique pour la phase d'analyse sémantique
    Tu maîtrise la compilation en ligne de commande MSBuild en détail !

    Ensuite, il te faudra interagir avec la CLR, la machine virtuelle pour lui injecter les commandes une par une !

    Je suppose que tu sais codé directement en CIL, le pseudo-assembleur du .NET

    Solution plus simple :
    Avant, tu devrais peut-être voir si les RTTI et la Reflexion ne pourrait pas t'aider à réaliser un assistant au debug que tu pourrais utiliser chez un client sur une version de prod non équipé d'un débogueur, un outil visible et accessible uniquement depuis un compte d'administration de ton logiciel

    Je suppose que tu avais déjà etudié chacun des acronymes et éléments technique avant de poser la question ?

    Mais après tout, je ne suis que développeur Delphi\C++, je ne fais pas de C# !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Qu'est-ce qu'il est méchant ce Troll !
    Mais très doué !
    Sauf en orthographe. Cousin tu pourrais faire un effort !

  5. #5
    Membre habitué
    Homme Profil pro
    Chercheur Indépendant en IA
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chercheur Indépendant en IA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Par défaut
    J'ai un peu bidouillé du code CIL, juste par curiosité, mais je suis pas allé bien loin.

    Actuellement je suis sur un projet où je manipule beaucoup la Reflexion de .Net.

    Bon, peut être, j'ai pas besoin de récrire un débogueur, je vais donc d'avantage préciser la problématique.

    Voici la donnée d'entrée du programme que je veux écrire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     if (lpremisse.ToLower().Equals("lecture de texte à haute voix"))
                    goto lecture_a_haute_voix;
                else goto unification_message_interlocuteur;
     
            lecture_a_haute_voix:
     
                //analyse du mot phonème
                i = 0;
            lmot = "";
     
            obtenir_caractere_suivant:
     
     
            lchar = lmessage[i];
            if (lviki.est_separateur(lchar.ToString()))
                goto traitement_mot;
            else goto concatener_caractere_au_mot;
     
                //j'ai un séparateur
        incrementation_i:
     
            if (i >= lmessage.Length - 1)
                goto traitement_mot;
     
     
                i++;            
                goto obtenir_caractere_suivant;
     
            concatener_caractere_au_mot:
                lmot += lchar;
                goto incrementation_i;
     
      ...............

    Je voudrais faire une application qui ré-exécute le bout de code ci-dessus,
    et qui me permet surtout
    - d'obtenir en temps réel les valeurs des variables (lpremisse, lmot, lchar, etc..). Juste après l'exécution de l'instruction
    le programme doit me retourner la valeur de la variable lchar. Et sur la base de cette valeur, je ferai un traitement particulier.


    - d'obtenir le chemin d'exécution des instructions , un peu ce qui se passe quand je fait une exécution pas à pas avec un débogueur

    Bref, voilà la problématique.

    Quelqu'un a-t-il une orientation ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    goto ? En C# ?

    Bah je comprends pourquoi tu as besoin d'un débogueur

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par trankil Voir le message
    Quelqu'un a-t-il une orientation ?
    Oui, j'en ai une : commencer à apprendre à coder en C# normalement avant de vouloir faire un debugger. Il y a déjà du chemin à faire, là ....

Discussions similaires

  1. [LG]Ecrire le contenu d'un fichier dans un autre
    Par lucke dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2003, 20h48
  2. Ecrire dans un fichier sans supprimer le reste
    Par koan_sabian dans le forum Linux
    Réponses: 4
    Dernier message: 20/02/2003, 15h44
  3. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54
  4. [VB6] Ecrire à un endroit précis d'un richtextbox
    Par STG dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/11/2002, 14h35
  5. ecrire son OS (assembleur ??)
    Par Anonymous dans le forum Programmation d'OS
    Réponses: 9
    Dernier message: 25/11/2002, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo