Description
While writing my own event pipe reader, I noticed that some event metadata have an empty event name and don't define any field descriptions. It seems like all these events are under the Microsoft-Windows-DotNETRuntimeRundown provider.
Reproduction Steps
Write a random .NET program, for example
while (true)
{
await Task.Run(() => { });
await Task.Delay(50);
}
and collect a trace, for example
dotnet trace collect -p $PID --providers='System.Threading.Tasks.TplEventSource:0x1:4'
Now if you look for the field strings in the nettrace file
$ grep -ao 'O.r.i.g.i.n.a.t.i.n.g.T.a.s.k.S.c.h.e.d.u.l.e.r.I.D' Test.exe_20231229_192905.nettrace
OriginatingTaskSchedulerID
OriginatingTaskSchedulerID
OriginatingTaskSchedulerID
$ grep -ao 'M.e.t.h.o.d.S.t.a.r.t.A.d.d.r.e.s.s' Test.exe_20231229_192905.nettrace
The field OriginatingTaskSchedulerID from an event of the TplEventSource provider is present but the MethodStartAddress field of the Microsoft-Windows-DotNETRuntimeRundown/MethodLoadUnloadRundown event is not.
Expected behavior
I'm expecting the nettrace file to self-contain all metadata to be parsed. Especially, all event metadata with their fields in the MetadataBlock objects so the events in EventBlock objects can be parsed.
Actual behavior

In my custom event pipe parser I can see that the Microsoft-Windows-DotNETRuntimeRundown events don't have an event name and field descriptors.
Regression?
No response
Known Workarounds
I think PerfView hardcodes the Microsoft-Windows-DotNETRuntimeRundown field descriptors instead of reading them from the nettrace file. This is not future proof in the case where a new version of an event is introduced.
Configuration
Other information
No response
Description
While writing my own event pipe reader, I noticed that some event metadata have an empty event name and don't define any field descriptions. It seems like all these events are under the
Microsoft-Windows-DotNETRuntimeRundownprovider.Reproduction Steps
Write a random .NET program, for example
and collect a trace, for example
Now if you look for the field strings in the nettrace file
The field
OriginatingTaskSchedulerIDfrom an event of theTplEventSourceprovider is present but theMethodStartAddressfield of theMicrosoft-Windows-DotNETRuntimeRundown/MethodLoadUnloadRundownevent is not.Expected behavior
I'm expecting the nettrace file to self-contain all metadata to be parsed. Especially, all event metadata with their fields in the MetadataBlock objects so the events in EventBlock objects can be parsed.
Actual behavior
In my custom event pipe parser I can see that the
Microsoft-Windows-DotNETRuntimeRundownevents don't have an event name and field descriptors.Regression?
No response
Known Workarounds
I think PerfView hardcodes the
Microsoft-Windows-DotNETRuntimeRundownfield descriptors instead of reading them from the nettrace file. This is not future proof in the case where a new version of an event is introduced.Configuration
Other information
No response