2017-01-05 4 views
2

J'enregistrer les événements ETW pour le fournisseur CLR:Comment afficher les détails d'un événement générique avec wpa?

xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 -f clr.etl 
... 
xperf -stop clr 

puis ouvrez clr.etl dans wpa.exe et voir beaucoup de 'événement générique. Mais semble wpa ne pas afficher des données, qui décrit dans MSDN

Tout ce que je peux voir est semblable à ceci:

Process Unknown 
Id 1 
Opcode Name 
Task Name 
Provider Name e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 
Time 0,071731589s 
Selection Duration 0,416407863s 
Start Time 0,002151869s 
End Time 0,418559732s 
Data Points 1 
Table Data Point Selection 
Cpu 0  
ThreadId 50 440  
Sum of Count 1 23 
Time (s) 0,071846769  

Loo comme celui-ci est l'événement GCStart_V1, mais je ne peux pas trouver par exemple le terrain Reason

Est-il possible de voir des données d'événements génériques dans wpa?

version WPA - 10.0.10586.212

+0

utilisez WPR pour capturer des données: ** "C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit \ wpr.exe" -start DotNET ** et ** "C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit \ wpr.exe "-stop C: \ clr.etl ** maintenant regarder les données dans WPA – magicandre1981

+0

Il ne montre pas plus d'informations, sauf le nom du processus. Pas de champs supplémentaires affichés :( –

+0

quelle version de Windows utilisez-vous? Ouvrez également l'ETL avec Perfview et regardez si cet outil affiche les données: https://www.microsoft.com/fr-fr/download/details.aspx?id = 28567 – magicandre1981

Répondre

3

Il arrive assez souvent sur des machines "normales" que les enregistrements du fournisseur CLR ETW soient corrompus à cause des correctifs .NET et autres. Dans ce cas, vous devez re/enregistrer avec (64 bits)

wevtutil um %windir%\Microsoft.NET\Framework64\v4.0.30319\CLR-ETW.man 
wevtutil im %windir%\Microsoft.NET\Framework64\v4.0.30319\CLR-ETW.man 

Si votre problème est que votre point de vue n'a pas été configuré pour afficher Champ1 .. N d'événements personnalisés alors la réponse de lowleveldesign est la bonne .

+0

ce problème manifeste est aussi ce que je pense. Btw, j'ai répondu à votre question LiveKD sur le forum sysinternals. – magicandre1981

+0

Merci André! Cela a aidé. La bonne version du SDK a fait l'affaire. –

+0

Merci, cela aide. –

3

Une remarque: j'enregistre habituellement la trace avec au moins les deux drapeaux du noyau:

xperf -on PROC_THREAD+LOADER -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 
xperf -stop -stop clr -d clr.etl 

Sinon, les noms de processus pourrait ne pas être résolus dans WPA.

Pour en revenir à votre question, il est un peu étrange de voir comment les champs personnalisés sont rendus dans WPA, mais après avoir surmonté la douleur initiale, vous trouverez son éditeur très utile. Le champ que vous avez mentionné est l'un des champs personnalisés spécifiques à l'événement donné. Par défaut, ces champs ne sont pas affichés et vous devez les ajouter dans la fenêtre de vue avancée:

add-field-to-view

Je traîna le Field1 avant la colonne Thread Name. Ensuite, vous devez sélectionner un événement (pas son parent, mais la ligne à l'événement), et vous remarquerez que les noms de colonnes pour les champs sont modifiés en conséquence:

reason-field

En outre, le champ Message contient habituellement tous les champs (leurs noms et valeurs), par exemple dans ce cas: