7
votes

Comment attacher un écouteur de trace à un processus en cours d'exécution?

Je ne suis pas sûr que si cela est possible de la manière que je dois envisager ou non, j'espère que quelqu'un peut m'aider à envelopper ma tête autour de cela.

Je veux injecter un traceliste dans un processus de course - genre de. Je ne me soucie pas de la manière dont je m'attache au processus, mais l'objectif final est d'écouter la sortie de trace du processus en cours et de la jeter à une fenêtre de la console.

Je peux m'attacher au processus d'accord, et je peux écrire un tracelistener d'accord ... où je suis décontracté est le peu au milieu. Quelqu'un a eu un indice si cela peut être fait? Si oui, pouvez-vous me donner une poussée dans la bonne direction parce que je ne peux pas voir la forêt pour les arbres ici.

Peut-être que j'essaie d'aborder cela dans le mauvais sens?


1 commentaires

Voici le lien vers Log4Net Doc pour l'appendeur de sortieDebugstring . Je suis arrivé ici de Google Recherche "Log4net SortieDebuggstring", mais il n'y a pas encore de lien direct sur la page


3 Réponses :


3
votes

Je ne pense pas que ce soit pratique. Il serait facile de créer un auditeur au moment de l'exécution, mais c'est quelque chose que l'application doit faire, cela implique d'ajouter quelque chose à une liste.

Vous voudrez peut-être vous assurer que l'auditeur par défaut n'est pas supprimé et utilisez un Outil de sortieDebug pour écouter.


2 commentaires

Intéressant - et cela vient juste d'attacher à l'auditeur par défaut? Cela me sauvera une quantité immense de temps. Je pensais que je devais devoir écrire quelque chose moi-même - mais si quelqu'un a déjà fait le travail pour moi, il ne sert à rien de réinventer la roue.


Oui, l'écouteur par défaut utilise l'API de sortieDebugstring (Win32). C'est ce qui se présente dans le débogueur Visual Studio.



1
votes

Lorsque je veux afficher la sortie de débogage, j'utilise une combinaison de log4net et DebugView . Je peux faire le moniteur log4net un fichier de configuration pour me permettre de modifier le niveau de journalisation log4net au moment de l'exécution ou je peux utiliser des filtres à DebugView.


2 commentaires

Si j'utilise log4net, je peux tout aussi facilement utiliser un traceliste. Le but est d'essayer de joindre à une application déjà en cours d'exécution sans l'enlever.


Je ne sais pas autant de choses sur les auditeurs de trace, mais Log4net peut surveiller un fichier de configuration pour vous permettre d'ajuster le niveau de journalisation sans supprimer l'application. DebugView surveille simplement tous les processus qui écrivent à l'appel de l'API de sortieDebugstring sous Windows. Vous ne correspondez pas à un processus spécifique, mais vous pouvez filtrer.



2
votes

serait dbgview de Sysinternals être suffisant pour vos besoins? Il vous montrera les messages de trace de tous les processus d'exécution sans vous permettre de configurer un auditeur de trace avant de commencer le processus.


0 commentaires