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 :

[C#/DebugView] Comment récupérer le nom du fichier et la ligne en cours ?


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut [C#/DebugView] Comment récupérer le nom du fichier et la ligne en cours ?
    Bonjour,

    Avec l'outil DebugView, j'essaie de tracer mon code et ses différents points de passage.

    Je récupère bien le nom de la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            System.Diagnostics.StackFrame sf = new System.Diagnostics.StackFrame();
            string NomMethode = sf.GetMethod().Name;
     
            Debugger.Log(1, sf.GetFileName(), NomMethode);
    Mais la méthode GetFileName() ne me renvoie rien.
    Je pense que je devrais récupérer le nom de mon fichier source (Default.aspx.cs), non ?
    Si je demande le numéro de ligne avec GetFileLineNumber(), je récupère toujours 0

    Je suis novice en C#, fais-je fausse route ou y a-t-il quelque chose à ajouter ?

    Jean-Yves

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Connais pas ton outil.
    Mais sais-tu que VS.Net dispose d'un débuggeur très utile et assez efficace ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Je connais un peu le debugger de VS mais ce n'est pas ce que je recherche.
    Il ne s'agit pas de debuguer mais de tracer. C'est à dire enregistrer dans un fichier texte par exemple ou juste suivre à l'écran ce qui se passe dans mon application quand elle est utilisée.

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    J'insiste, pour faire du pas-à-pas lors de l'exécution, le mieux que tu trouveras c'est VS.Net.

    Fait un point d'arrêt à l'endroit souhaité (F9), et lance ton appli en mode debug (F5). Avance dans ton code avec F10 pour passer à la ligne suivante, ou F11 pour t'enfoncer dans une sous méthode.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Avec System.Diagnostics.Trace, tu peux suivre le déroulement sans point d'arrêt en mode debug.
    En release, il me semble que DebugView récupère les chaînes de Trace.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Mose
    J'insiste, pour faire du pas-à-pas lors de l'exécution, le mieux que tu trouveras c'est VS.Net.

    Fait un point d'arrêt à l'endroit souhaité (F9), et lance ton appli en mode debug (F5). Avance dans ton code avec F10 pour passer à la ligne suivante, ou F11 pour t'enfoncer dans une sous méthode.
    J'avais bien compris. Mais je répète que ce n'est pas ce que je veux. Je ne cherche pas à debuguer.

    En gros mon application est lancée depuis un autre PC sur le réseau, et je veux savoir quelles opérations l'utilisateur situé sur l'autre PC fait.
    Et je veux pouvoir le suivre en direct mais aussi avoir la possibilité d'enregistrer la liste de ses actions dans un fichier texte pour m'en servir plus tard si besoin.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par NicolasG
    Avec System.Diagnostics.Trace, tu peux suivre le déroulement sans point d'arrêt en mode debug.
    En release, il me semble que DebugView récupère les chaînes de Trace.
    Ok, merci, je n'ai pas encore exploré la classe Trace.
    Je vais regarder ce que je peux en tirer.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Ok, ça marche

    J'ai utilisé les classes StackTrace et Trace.

    Voila le résultat, c'est du C# :

    ...

    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
     
    protected void MonApplicationTrace(String cpTexte)
    {
      StackTrace  stStackTrace = new StackTrace(new StackFrame(1, true));
      string      cMessage;
      int         nPos;
     
      //      cMessage = _CODE_CSHARP_;
      cMessage = "C# ";
      nPos = stStackTrace.GetFrame(0).GetFileName().ToString().LastIndexOf
    ('\\') ;
     
      cMessage += stStackTrace.GetFrame(0).GetFileName().ToString
    ().Substring(nPos + 1)   + '#';
      cMessage += stStackTrace.GetFrame(0).GetMethod().ToString() + '#';
      cMessage += stStackTrace.GetFrame(0).GetFileLineNumber().ToString()
         + '#';
      cMessage += cpTexte;
     
      System.Diagnostics.Trace.WriteLine(cMessage);     
    }

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Est-ce qu'il est possible d'obtenir les parametre d'appel a la fonction avec leur valeur au moment de l'appel ?


    (la fonction recherche du forum marche bien )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/05/2012, 15h26
  2. [XL-2003] Comment utiliser Windows(filename).activate? avec un nom de fichier variable
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2011, 16h32
  3. Réponses: 4
    Dernier message: 10/04/2007, 12h34
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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