2009-03-19 10 views
2

J'ai des problèmes avec un bloc de code qui, je crois, est lié à un clic de souris, mais je n'arrive pas à capturer l'événement exact dans mon code. J'ai utilisé le débogueur C# pour parcourir mon code et après la fin d'un de mes événements, le code se verrouille simplement.Logiciel de surveillance des événements déclenchés par le code

Le but de mon article est de demander s'il y a un logiciel qui surveille mon processus et de me faire savoir les événements qui se déclenchent après que j'ai appuyé sur la touche F11 et que le code se fige. J'ai essayé le procmon.exe de SysInternals mais cela ne me dit pas quels événements tirent.

Répondre

2

Avez-vous essayé Spy ++? C'est un outil fourni avec Visual Studio (au moins 2003 & 2005). Sur mes installations par défaut 2003 et 2005, Spy ++ est à: Démarrer | Fichiers de programme | Microsoft Visual Studio 200X | Outils Visual Studio | Spy ++

Après avoir lancé Spy ++, sélectionnez Find Window ... dans le menu Search. Faites glisser le "Finder Tool" à la fenêtre ou le contrôle que vous voulez regarder les événements et cliquez sur OK. Faites un clic droit sur l'élément sélectionné dans l'arborescence et sélectionnez "Messages". Cela fera apparaître une fenêtre qui montre les messages lorsqu'ils atteignent votre fenêtre d'intérêt.

Si Spy ++ n'obtient pas ce dont vous avez besoin, qu'en est-il de Managed Spy? Il semble être comme Spy ++ mais spécifiquement pour le code managé. Je ne l'ai pas essayé.

[It] affiche une vue arborescente des contrôles dans votre application client .NET. Vous pouvez sélectionner n'importe quel contrôle et obtenir ou définir n'importe quelle propriété dessus. Vous pouvez également enregistrer un ensemble filtré d'événements que le contrôle déclenche.

+0

@JeffH - Merci! Spy ++ m'a permis de voir une boucle infinie d'événements qui s'appelait que je n'avais pas réalisé était en place. –

+0

Je suis content que vous ayez ce dont vous aviez besoin! – JeffH

+0

Juste essayé Managed Spy, cet outil fonctionne très bien aussi! Et c'est un peu plus convivial et orienté .NET que Spy ++, ce qui est sympa. –

1

Utilisez-vous le multithread? Si c'est le cas, essayez d'éviter de passer des contrôles et d'autres objets Windows Forms à côté du thread de formulaires, car le débogueur essaiera d'accéder à la valeur de l'objet, ce qui provoquera le gel du débogueur pendant un certain temps.

+0

L'application @Nick Bolton - Nope ... n'est pas multithread. Merci!! –

1

CLRProfiler peut faire ce que vous voulez.

Les états aperçu de l'outil

Le profileur CLR comprend un certain nombre de très vues utiles du profil allocation , y compris un histogramme de types attribués, allocation et appel graphiques, une ligne de temps montrant GCS de différentes générations et l'état résultant du tas géré après ces collections , et un arbre d'appel montrant allocations par méthode et l'ensemble charges.

L'utilisation de la mémoire est vraiment vendu dans cette description, mais il mentionne « l'arbre d'appel », et ce lien sur how to use il, mentionne

Appel Tree View Fournit un texte basé, vue chronologique, hiérarchique de l'exécution de votre application.

Bonne chance. Pourquoi ne pas utiliser un outil de diagraphie comme log4net?