4 <name>Microsoft.Diagnostics.Tracing.TraceEvent</name>
7 <member name="T:Microsoft.Diagnostics.Tracing.BPerfEventSource">
9 BPerf Trace Log (BTL) are files generated by the CPU Samples Collector tool in https://github.com/Microsoft/BPerf
10 The layout of the file is as follows -->
13 4 byte integer describing compressed size
14 4 byte integer describing uncompressed size
17 The byte array is a list of EVENT_RECORDs. Each Event_RECORD is aligned to 16-bytes.
19 The EVENT_RECORD is laid out as a memory dump of the structure in memory. All pointers from
20 the structure are laid out successively in front of the EVENT_RECORD.
22 The compression mechanism is using the NTDLL.RtlDecompressBufferEx Express Huffman procedure.
25 <member name="M:Microsoft.Diagnostics.Tracing.BPerfEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
27 This constructor is used when the consumer has an offset within the BTL file that it would like to seek to.
30 <member name="M:Microsoft.Diagnostics.Tracing.BPerfEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions,System.Byte[],System.Byte[],System.Byte[],System.Boolean)">
32 This constructor is used when the consumer is supplying the buffers for reasons like buffer pooling.
35 <member name="T:Microsoft.Diagnostics.Tracing.ActivityComputer">
37 An ActivityComputer is a state machine that track information about Activities. In particular, it can
38 compute a activity aware call stack. (GetCallStack).
41 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource,Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.GCReferenceComputer)">
43 Construct a new ActivityComputer that will process events from 'eventLog' and output activity - aware stacks to 'outputStackSource'.
46 <member name="P:Microsoft.Diagnostics.Tracing.ActivityComputer.Log">
48 Returns the TraceLog that is associated with the computer (at construction time)
51 <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Create">
53 Fires when an activity is first created (scheduled). The activity exists, and has an ID, but has not run yet.
56 <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Start">
58 First when an activity starts to run (using a thread). It fires after the start has logically happened.
59 so you are logically in the started activity.
62 <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Stop">
64 Fires when the activity ends (no longer using a thread). It fires just BEFORE the task actually dies
65 (that is you ask the activity of the event being passed to 'Stop' it will still give the passed
66 activity as the answer). The first TraceActivity is the activity that was stopped, the second
67 is the activity that exists afer the stop completes.
70 <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.AfterStop">
72 Like OnStop but gets called AFTER the stop has completed (thus the current thread's activity has been updated)
73 The activity may be null, which indicates a failure to look up the activity being stopped (and thus the
74 thread's activity will be set to null).
77 <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.AwaitUnblocks">
79 AwaitUnblocks is a specialized form of the 'Start' event that fires when a task starts because
80 an AWAIT has ended. The start event also fires on awaits end and comes AFTER the AwaitUnblocks
81 event has been delivered.
83 Not every AWAIT end causes a callback. Because an AWAIT begin happens for every FRAME you only
84 want a callback for the FIRST task (activity) created by parent of this activity. This is what
87 AwaitUnblocks are often treated differently because you want to consider the time between the begin
88 (Activity Created) and awaitUnbock to be accounted for as on the critical path, whereas for 'normal'
89 tasks you normally don't think that time is interesting.
92 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCurrentActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
94 Fetches the current activity for 'thread' at the present time (the current event being dispatched).
95 Never returns null because there is always and activity (it may be the thread task).
96 This is arguably the main thing that this computer keeps track of.
99 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetActivityRepresentingThread(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
101 Gets the default activity for a thread (the activity a thread is doing when the thread starts).
104 <member name="P:Microsoft.Diagnostics.Tracing.ActivityComputer.Item(Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex)">
106 Maps an activity index back to its activity.
109 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.TraceEvent,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex},System.Boolean)">
111 Returns a activity-aware call stackIndex associated with'ouputStackSource' for the call stack associated with 'data'.
112 Such activity-aware call stacks have pseudo-frame every time on thread causes another task to run code (because the
113 creator 'caused' the target code).
115 If 'topFrames' is non-null, then this function is called with a Thread and is expected to return a CallStack index that
116 represents the thread-and-process nodes of the stack. This allows the returned stack to be have pseudo-frames
117 at the root of the stack. Typically this is used to represent the 'request' or other 'global' context. If it is not
118 present the thread and process are used to form these nodes.
120 This needs to be a function mapping threads to the stack base rather than just the stack base because in the presence
121 of activities the thread at the 'base' whose 'top' you want may not be the one that 'data' started with, so the caller
122 needs to be prepared to answer the question about any thread.
125 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStackForActivity(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex})">
127 Returns a StackSource call stack associated with outputStackSource for the activity 'activity' (that is the call stack at the
128 the time this activity was first created. This stack will have it 'top' defined by topFrames (by default just the thread and process frames)
131 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
133 This is not a call stack but rather the chain of ACTIVITIES (tasks), and can be formed even when call stacks
135 Returns a Stack Source stack associated with outputStackSource where each frame is a task starting with 'activity' and
136 going back until the activity has no parent (e.g. the Thread's default activity).
139 <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.NoCache">
141 If set, we don't assume that the top top frames are an attribute of the TOP THREAD (if they vary based on
142 the current activity, then you can't cache. Setting this disables caching.
145 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.IsThreadParkedInThreadPool(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
147 Returns true if the call stack is in the thread pool parked (not running user code)
148 This means that the thread CAN'T be running an active activity and we can kill it.
151 <member name="T:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache">
153 This cache remembers Activity * CallStackIndex pairs and the result.
156 <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.CurrentActivityIndex">
158 Remembers the current Activity for 'Get' and 'Put' operations. Needs to be set before Get or Put is called.
161 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.Get(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
163 Gets the cache entry for the CurrnetActivityIndex with the call stack 'fromStackIndex' returns Invalid if
166 This is not passed the CurrentActivityIndex, so it can implement the CallStackMap interface
169 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.Put(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
171 updates the cache entry for the CurrnetActivityIndex with the call stack 'fromStackIndex' with the value
174 This is not passed the CurrentActivityIndex, so it can implement the CallStackMap interface
177 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.OnCreated(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind)">
179 Creation handles ANY creation of a task.
182 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.OnStop(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
184 Activity can be null, which means we could not figure out the activity we are stopping.
187 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetTPLRawID(Microsoft.Diagnostics.Tracing.TraceEvent,System.Int32,Microsoft.Diagnostics.Tracing.ActivityComputer.IDType)">
189 Get a trace wide ID for a TPL event. TPL tasks might be 'Scheduled' in the sense
190 that it might run independently on another thread. Tasks that do 'BeginWait and 'EndWait'
191 are not scheduled. The same ID might have both operating simultaneously (if you wait
192 on a scheduled task). Thus you need an independent ID for both.
195 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStackWithActivityFrames(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex})">
197 if 'activity' has not creator (it is top-level), then return baseStack (near execution) followed by 'top' representing the thread-process frames.
199 otherwise, find the fragment of 'baseStack' up to the point to enters the threadpool (the user code) and splice it to the stack of the creator
200 of the activity and return that. (thus returning your full user-stack).
203 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.TrimETWFrames(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
205 Trims off frames that call ETW logic and return. If the pattern is not matched, we return callStackIndex
208 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.IsRecursiveTask(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
210 If the stack from 'startStack' (closest to execution) through 'stopStack' is the same as 'baseStack' return a non-invalid frame
211 indicating that it is recursive and should be dropped. The frame index returned is the name of the task on 'baseStack' that
212 begins the recursion (so you can update it if necessary)
215 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.SpliceStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
217 Create a stack which is executing at 'startStack' and finds the region until 'stopStack', appending that (in order) to 'baseStack'.
220 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.FindThreadPoolTransition(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
222 Returns the point in 'callStackIndex' where the CLR thread pool transitions from
223 a thread pool worker to the work being done by the threadpool.
225 Basically we find the closest to execution (furthest from thread-start) call to a 'Run' method
226 that shows we are running an independent task.
229 <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.ResolveWellKnownSymbols">
231 Used by TrimETWFrames and FindThreadPoolTransition to find particular frame names and place the information in 'm_methodFlags'
234 <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.m_methodFlags">
236 We look for various well known methods inside the Task library. This array maps method indexes
237 and returns a bitvector of 'kinds' of methods (Run, Schedule, ScheduleHelper).
240 <member name="T:Microsoft.Diagnostics.Tracing.GCReferenceID">
242 A small number that you can get from the GetReferenceForGCAddress that is
243 invariant as the GC address moves around during GCs. Because this index
244 is small it can be used to store information about the GC reference in a
248 <member name="F:Microsoft.Diagnostics.Tracing.GCReferenceID.Dead">
250 Indicates that the address is no longer alive.
253 <member name="T:Microsoft.Diagnostics.Tracing.GCReferenceComputer">
255 This computer will keep track of GC references as they change over time
258 <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
260 Create a new GCRefernece computer from the stream of events 'source'. When 'source' is processed
261 you can call 'GetReferenceForGCAddress' to get stable ids for GC references.
263 <param name="source"></param>
265 <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.GetReferenceForGCAddress(System.UInt64)">
267 Get a stable ID for a GcAddress. This ID can be compared for object identity.
268 This only works at the current point in time when scanning the source.
271 <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.DisposeGCReference(Microsoft.Diagnostics.Tracing.GCReferenceID)">
273 If you no longer need to track the GC reference, call this function to remove the tracking.
276 <member name="T:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer">
278 A EventPipeThreadTimeComputer does a simple simulation of what each thread is doing to create stack events that represent
282 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Symbols.SymbolReader)">
284 Create a new ThreadTimeComputer
287 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.UseTasks">
289 If set we compute thread time using Tasks
292 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.IncludeEventSourceEvents">
294 Track additional info on like EventName or so.
295 Default to true to keep backward compatibility.
298 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GroupByStartStopActivity">
300 Use start-stop activities as the grouping construct.
303 <member name="P:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.IgnoreApplicationInsightsRequestsWithRelatedActivityId">
305 Reduce nested application insights requests by using related activity id.
309 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GenerateThreadTimeStacks(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
311 Generate the thread time stacks, outputting to 'stackSource'.
313 <param name="outputStackSource"></param>
314 <param name="traceEvents">Optional filtered trace events.</param>
316 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.UpdateThreadToWorkOnStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.TraceEvent)">
318 Updates it so that 'thread' is now working on newStartStop, which can be null which means that it is not working on any
322 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.OnSampledProfile(Microsoft.Diagnostics.Tracing.TraceEvent)">
324 This can actually be called with any event that has a stack. Basically it will log a CPU sample whose
325 size is the time between the last such call and the current one.
328 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GetCallStack(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
330 Get the call stack for 'data' Note that you thread must be data.Thread(). We pass it just to save the lookup.
333 <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GetTopFramesForActivityComputerCase(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
335 Returns a function that figures out the top (closest to stack root) frames for an event. Often
336 this returns null which means 'use the normal thread-process frames'.
337 Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
338 stack at the time that the current activity was CREATED rather than the current time. This works
339 better for await time.
342 <member name="T:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.ThreadState">
344 Represents all the information that we need to track for each thread.
347 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_unknownTimeStartMsec">
349 Used to create UNKNOWN frames for start-stop activities. This is indexed by StartStopActivityIndex.
350 and for each start-stop activity indicates when unknown time starts. However if that activity still
351 has known activities associated with it then the number will be negative, and its value is the
352 ref-count of known activities (thus when it falls to 0, it we set it to the start of unknown time.
353 This is indexed by the TOP-MOST start-stop activity.
356 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_threadToStartStopActivity">
358 maps thread ID to the current TOP-MOST start-stop activity running on that thread. Used to updated m_unknownTimeStartMsec
359 to figure out when to put in UNKNOWN_ASYNC nodes.
362 <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_startStopActivityToAsyncUnknownSamples">
364 Sadly, with AWAIT nodes might come into existance AFTER we would have normally identified
365 a region as having no thread/await working on it. Thus you have to be able to 'undo' ASYNC_UNKONWN
366 nodes. We solve this by remembering all of our ASYNC_UNKNOWN nodes on a list (basically provisional)
367 and only add them when the start-stop activity dies (when we know there can't be another AWAIT.
368 Note that we only care about TOP-MOST activities.
371 <member name="T:Microsoft.Diagnostics.Tracing.ServerRequestComputer">
373 Calculates stacks grouping them by the server request (e.g. ASP.NET) request they are for)
376 <member name="M:Microsoft.Diagnostics.Tracing.ServerRequestComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
378 Create a new ServerRequest Computer.
381 <member name="M:Microsoft.Diagnostics.Tracing.ServerRequestComputer.GetCurrentRequest(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
383 The server request that we currently processing
386 <member name="T:Microsoft.Diagnostics.Tracing.ServerRequest">
388 A ServerRequest contains all the information we know about a server request (e.g. ASP.NET request)
391 <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.Url">
393 Any URL associated with the request
396 <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.ID">
398 If the request has a GUID associated with it to uniquely identify it, this is it
401 <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.StartTime">
403 The time that the request started (or the earliest that we know about it)
406 <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityComputer">
408 Calculates start-stop activities (computes duration), It uses the 'standard' mechanism of using
409 ActivityIDs to corelate the start and stop (and any other events between the start and stop,
410 and use the RelatedActivityID on START events to indicate the creator of the activity, so you can
411 form nested start-stop activities.
414 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource,Microsoft.Diagnostics.Tracing.ActivityComputer,System.Boolean)">
416 Create a new ServerRequest Computer.
419 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetCurrentStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.TraceEvent)">
421 The current start-stop activity on the given thread.
422 If present 'context' is used to look up the current activityID and try to use that to repair missing Starts.
423 Basically if we can't figure out what StartStop activity the thread from just the threadID we can use the activityID
424 from the 'context' event to find it as a backup.
427 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetStartStopActivityForActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
429 Gets the current Start-Stop activity for a given TraceActivity.
431 <param name="curActivity"></param>
434 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetCurrentStartStopActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
436 Returns a stack index representing the nesting of Start-Stop activities for the thread 'curThread' at the current time
437 (At this point of the current event for the computer). The stack starts with a frame for the process of the thread, then
438 has all the start-stop activity frames, then a frame representing 'topThread' which may not be the same as 'thread' since
439 'topThread' is the thread that spawned the first task, not the currently executing thread.
441 Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
442 stack at the time that the current activity was CREATED rather than the current time. This works
443 better for await time
446 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetStartStopActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
448 Gets a stack that represents the nesting of the Start-Stop tasks. curActivity can be null, in which case just he process node is returned.
451 <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.Start">
453 If set, called AFTER a Start-Stop activity starts, called with the activity and the event that caused the start.
456 <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.Stop">
458 If set, called BEFORE a Start-Stop activity stops, called with the activity and the event that caused the start.
461 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.IsActivityPath(System.Guid,System.Int32)">
463 Returns true if 'guid' follow the EventSouce style activity ID for the process with ID processID.
464 You can pass a process ID of 0 to this routine and it will do the best it can, but the possibility
465 of error is significantly higher (but still under .1%)
468 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.ActivityPathProcessID(System.Guid)">
470 Assuming guid is an Activity Path, extract the process ID from it.
473 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.ActivityPathString(System.Guid)">
475 returns a string representation for the activity path. If the GUID is not an activity path then it returns
476 the normal string representation for a GUID.
479 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.DoStopIfNecessary">
481 We don't do a stop all processing associated with the stop event is done. Thus if we are not 'on'
482 the stop event, then you can do any deferred processing.
485 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.TryProcessDiagnosticSourceStartEvents(Microsoft.Diagnostics.Tracing.TraceEvent)">
487 Try to process some predefined DiagnosticSource ("Microsoft.EntityFrameworkCore.BeforeExecuteCommand" and "Microsoft.AspNetCore.Hosting.BeginRequest") start events.
488 This will try to filter the events by "EventName", if failed it will return false without any further processing.
490 <returns>Whether or not succeeded in processing the event</returns>
492 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.FixAndProcessWindowsASP(Microsoft.Diagnostics.Tracing.TraceEvent,System.Collections.Generic.KeyValuePair{System.Guid,System.Guid}[])">
494 fix ASP.NET receiving events
497 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetActiveStartStopActivityTable(System.Guid,System.Int32)">
499 Look up a start-stop activity by its ID. Note that the 'activityID' needs to be unique for that instance
500 within a process. (across ALL start-stop activities, which means it may need components that encode its
501 provider and task). We pass the process ID as well so that it will be unique in the whole trace.
504 <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.NumberListCodes">
506 The encoding for a list of numbers used to make Activity Guids. Basically
507 we operate on nibbles (which are nice because they show up as hex digits). The
508 list is ended with a end nibble (0) and depending on the nibble value (Below)
509 the value is either encoded into nibble itself or it can spill over into the
513 <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityIndex">
515 An dense number that defines the identity of a StartStopActivity. Used to create side arrays
516 for StartStopActivity info.
519 <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityIndex.Illegal">
521 An illegal index, sutable for a sentinal.
524 <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivity">
526 A StartStop reresents an activity between a start and stop event as generated by EvetSource.
529 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Index">
531 The index (small dense numbers suitabilty for array indexing) for this activity.
534 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Name">
536 The name of the activity (The Task name for the start-stop event as well as the activity ID)
539 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.KnownType">
544 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ExtraInfo">
546 If the activity has additional information associated with it (e.g. a URL), put it here. Can be null.
549 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.TaskName">
551 The Task name (the name prefix that is common to both the start and stop event)
554 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ProcessID">
556 The processID associated with this activity
559 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ActivityID">
561 The Activity ID (as a GUID) that matches the start and stop together.
564 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ActivityPathString">
566 The path of creators that created this activity.
569 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Creator">
571 The start-stop activity that created this activity (thus it makes a tree)
574 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StartEventIndex">
576 The TraceLog event Index, of the start event (you can get addition info)
579 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StopEventIndex">
581 The TraceLog event Index, of the stop event (you can get addition info)
584 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StartTimeRelativeMSec">
586 The time in MSec from the start of the trace when the start event happened.
589 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.DurationMSec">
591 The duration of activity in MSec (diff between stop and start)
594 <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.IsStopped">
596 This activity has completed (the Stop event has been received). Thus Duration is valid.
599 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.GetActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
601 Returns a stack on the outputStackSource which has a frame for each activity that
602 caused this activity, as well as the root of the given 'rootStack' (often a stack representing the process).
605 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.ToString">
607 override. Gives the name and start time.
610 <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.RememberStop(Microsoft.Diagnostics.Tracing.EventIndex,System.Double,Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex)">
612 We don't update the state for the stop at the time of the stop, but at the next call to any of the StartStopActivityComputer APIs.
615 <member name="T:Microsoft.Diagnostics.Tracing.TcpIpComputer">
617 A TcpIpComputer keeps track of TCP/IP connections so that you can correlate individual reads and
618 writes with the connection info (like the IP address of each end), as well as data packets being
619 sent (if you have packet capture turned on).
622 <member name="M:Microsoft.Diagnostics.Tracing.TcpIpComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
624 Create a new GCRefernece computer from the stream of events 'source'. When 'source' is processed
625 you can call 'GetReferenceForGCAddress' to get stable ids for GC references.
627 <param name="source"></param>
629 <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer">
631 A ThreadTimeComputer does a simple simulation of what each thread is doing to create stack events that represent
632 CPU, blocked time, disk and Network activity.
635 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Symbols.SymbolReader)">
637 Create a new ThreadTimeComputer
640 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.UseTasks">
642 If set we compute thread time using Tasks
645 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.IncludeEventSourceEvents">
647 Track additional info on like EventName or so.
648 Default to true to keep backward compatibility.
651 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.BlockedTimeOnly">
653 If set we compute blocked time
656 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.ExcludeReadyThread">
658 If set we don't show ready thread information
661 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GroupByAspNetRequest">
663 If set we group by ASP.NET Request
666 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.MiniumReadiedTimeMSec">
668 If we spend less then this amount of time waiting for the CPU, don't bother showing it.
671 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GroupByStartStopActivity">
673 LIke the GroupByAspNetRequest but use start-stop activities instead of ASP.NET Requests as the grouping construct.
676 <member name="P:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.IgnoreApplicationInsightsRequestsWithRelatedActivityId">
678 Reduce nested application insights requests by using related activity id.
682 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.NoAwaitTime">
684 Don't show AwaitTime. For CPU only traces showing await time is misleading since
685 blocked time will not show up.
688 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GenerateThreadTimeStacks(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
690 Generate the thread time stacks, outputting to 'stackSource'.
692 <param name="outputStackSource"></param>
693 <param name="traceEvents">Optional filtered trace events.</param>
695 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.UpdateThreadToWorkOnStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.TraceEvent)">
697 Updates it so that 'thread' is now working on newStartStop, which can be null which means that it is not working on any
701 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.OnSampledProfile(Microsoft.Diagnostics.Tracing.TraceEvent)">
703 This can actually be called with any event that has a stack. Basically it will log a CPU sample whose
704 size is the time between the last such call and the current one.
707 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetCallStack(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
709 Get the call stack for 'data' Note that you thread must be data.Thread(). We pass it just to save the lookup.
712 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetTopFramesForActivityComputerCase(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
714 Returns a function that figures out the top (closest to stack root) frames for an event. Often
715 this returns null which means 'use the normal thread-process frames'.
716 Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
717 stack at the time that the current activity was CREATED rather than the current time. This works
718 better for await time.
721 <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.ThreadState">
723 Represents all the information that we need to track for each thread.
726 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetAspNetGuid(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
728 Given and activity, return the ASP.NET Guid associated with it (or Guid.Empty if there is not one).
732 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetAspNetFromProcessFrameThroughThreadFrameStack(System.Guid,Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
734 Computes the ASP.NET Pseudo frames from the process frame through the thread frame (which includes all
735 the pseudo-frames for the ASP.NET groupings.
738 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.TransferAspNetRequestToThread(System.Guid,Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex,System.String)">
740 Indicates that the aspNet request represented by aspNetGuid is now being handled by the thread with index
741 newThreadIndex. Thus any old threads handling this request are 'cleared' and replaced with 'newThreadIndex'
742 If 'newThreadIndex == Invalid then the entry for aspNetGuid is removed.
745 <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GenerateReadyThreadNodes(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,System.Double,System.Int32)">
747 Generate a stack that from the root looks like 'stackIndex followed by 'READIED BY TID(XXXX)'
748 followed by frames of 'readyThreadCallStack' (suffixed by READIED_BY)
751 <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.NetworkInfo">
753 NetworkInfo remembers useful information to tag blocked time that seems to be network related.
754 It is the value of the m_lastPacketForProcess table mapping threads to network information.
757 <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.AspNetRequestInfo">
759 AspNetRequestInfo remembers everything we care about associate with an single ASP.NET request.
760 It is the value of the m_aspNetRequestInfo table.
763 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_unknownTimeStartMsec">
765 Used to create UNKNOWN frames for start-stop activities. This is indexed by StartStopActivityIndex.
766 and for each start-stop activity indicates when unknown time starts. However if that activity still
767 has known activities associated with it then the number will be negative, and its value is the
768 ref-count of known activities (thus when it falls to 0, it we set it to the start of unknown time.
769 This is indexed by the TOP-MOST start-stop activity.
772 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_threadToStartStopActivity">
774 maps thread ID to the current TOP-MOST start-stop activity running on that thread. Used to updated m_unknownTimeStartMsec
775 to figure out when to put in UNKNOWN_ASYNC nodes.
778 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_startStopActivityToAsyncUnknownSamples">
780 Sadly, with AWAIT nodes might come into existance AFTER we would have normally identified
781 a region as having no thread/await working on it. Thus you have to be able to 'undo' ASYNC_UNKONWN
782 nodes. We solve this by remembering all of our ASYNC_UNKNOWN nodes on a list (basically provisional)
783 and only add them when the start-stop activity dies (when we know there can't be another AWAIT.
784 Note that we only care about TOP-MOST activities.
787 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_IRPToThread">
789 m_IRPToThread maps the I/O request to the thread that initiated it. This way we can associate
790 the disk read size and file with the thread that asked for it.
793 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_threadIDUsingProc">
795 Maps processor number to the OS threadID of the thread that is using it. Allows you
796 to determine how (CPU) idle the machine is.
799 <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_numIdleProcs">
801 Using m_threadIDUsingProc, we compute how many processor are current doing nothing
804 <member name="P:Microsoft.Diagnostics.Tracing.NewThreadTimeComputer.Log">
806 Returns the TraceLog that is associated with the computer (at construction time)
809 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntimeExtensions">
811 Extension methods to enable TraceManagedProcess
814 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime">
816 Extension properties for TraceProcess that include necessary .NET values
818 TODO This implementation is poor at idenitfying the ParentPID, 64bitness, and Start/End times
821 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.RuntimeVersion">
823 Returns the textual version of the .NET Framework
826 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.StartupFlags">
828 Returns the .NET startup flags
831 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.RuntimeBuiltTime">
833 Date and time of when the runtime was built
834 This is useful when a more detailed version is not present
837 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GC">
839 Garbage Collector (GC) specific details about this process
842 <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GCStart">
844 Fired on the start of a GC
847 <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GCEnd">
849 Fired at the end of the GC. Given the nature of the GC, it is possible that multiple GCs will be inflight at the same time.
852 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JIT">
854 Just-in-time compilation (JIT) specific details about this process
857 <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JITMethodStart">
859 Fired when a managed method is starting to compile (jit)
862 <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JITMethodEnd">
864 Fired when a managed method is done compiling (jitting). Given the nature of the JIT, it is possible that multiple methods will be compiled at the same time.
867 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.HasAnyKnownOptimizationTier">
869 Indicates whether any of the jitted method code versions have a known optimization tier
872 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.IsTieredCompilationEnabled">
874 Indicates whether tiered compilation is enabled
877 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.ToString">
879 An XML representation of the TraceEventProcess (for debugging)
882 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
884 Gathers relevant details about the processes in the event source
886 <param name="source"></param>
888 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector">
890 Garbage Collector (GC) specific details about this process
893 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.Stats">
895 Process view of GC statistics
898 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.Generations">
900 Process view of GC generational statistics
903 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.GCs">
905 Process view of all GCs
908 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler">
910 Just-in-time compilation (JIT) specific details about this process
913 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler.Stats">
915 Process view of JIT statistics
918 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler.Methods">
920 Process view of all methods jitted
923 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC">
928 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Number">
930 Primary GC information
933 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Type">
935 Type of the GC, eg. NonConcurrent, Background or Foreground
938 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Reason">
940 Reason for the GC, eg. exhausted small heap, etc.
943 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Generation">
945 Generation of the heap collected. If you compare Generation at the start and stop GC events they may differ.
948 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.StartRelativeMSec">
950 Time relative to the start of the trace. Useful for ordering
953 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.DurationMSec">
955 Duration of the GC, excluding the suspension time
958 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseDurationMSec">
960 Duration the EE suspended the process
963 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.SuspendDurationMSec">
965 Time the EE took to suspend all the threads
968 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PercentTimeInGC">
970 Percentage time the GC took compared to the process lifetime
973 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.ProcessCpuMSec">
975 The number of CPU samples gathered for the lifetime of this process
978 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GCCpuMSec">
980 The number of CPU samples gathered during a GC
983 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapMarkTimes">
985 Mark time information per heap. Key is the heap number
988 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.DurationSinceLastRestartMSec">
990 Time since the last EE restart
993 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseStartRelativeMSec">
995 Realtive time to the trace of when the GC pause began
998 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsComplete">
1000 Marks if the GC is in a completed state
1003 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.ServerGcHeapHistories">
1008 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocedSinceLastGCBasedOnAllocTickMB">
1010 Amount of memory allocated since last GC. Requires GCAllocationTicks enabled. The
1011 data is split into small and large heaps
1014 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapCount">
1016 Number of heaps. -1 is the default
1019 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetPinnedObjectSizes">
1021 Calculate the size of all pinned objects
1025 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetPinnedObjectPercentage">
1027 Percentage of the pinned objects created by the user
1031 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetTotalGCTime">
1033 Total time taken by the GC
1037 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GCGenerationName">
1039 Friendly GC name including type, reason and generation
1042 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizeAfterMB">
1044 Heap size after GC (mb)
1047 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PromotedMB">
1049 Amount of memory promoted with GC (mb)
1052 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.SurvivalPercent(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1054 Memory survival percentage by generation
1056 <param name="gen"></param>
1059 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenSizeAfterMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1061 Heap size by generation after GC (mb)
1063 <param name="gen"></param>
1066 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenFragmentationMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1068 Heap fragmentation by generation (mb)
1070 <param name="gen"></param>
1073 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenFragmentationPercent(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1075 Percentage of heap fragmented by generation
1077 <param name="gen"></param>
1080 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenInMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1082 Amount of memory at the start of the GC by generation (mb)
1084 <param name="gen"></param>
1087 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenOutMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1089 Amount of memory after the gc by generation (mb)
1091 <param name="gen"></param>
1094 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenPromotedMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1096 Memory promoted by generation (mb)
1097 Note that in 4.0 TotalPromotedSize is not entirely accurate (since it doesn't
1098 count the pins that got demoted. We could consider using the PerHeap event data
1099 to compute the accurate promoted size.
1100 In 4.5 this is accurate.
1102 <param name="gen"></param>
1105 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenBudgetMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1107 Heap budget by generation (mb)
1109 <param name="gen"></param>
1112 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenObjSizeAfterMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1114 Object size by generation after GC (mb)
1116 <param name="gen"></param>
1119 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapCondemnedReasons">
1121 Heap condemned reasons by GC
1124 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.FindFirstHighestCondemnedHeap">
1126 Identify the first and greatest condemned heap
1130 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsLowEphemeral">
1132 Indicates that the GC has low ephemeral space
1136 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsNotCompacting">
1138 Indicates that the GC was not compacting
1142 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetCondemnedReasons(System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Analysis.GC.CondemnedReasonGroup,System.Int32})">
1144 Returns the condemned reason for this heap
1146 <param name="ReasonsInfo"></param>
1148 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapHistories">
1153 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.TotalPinnedPlugSize">
1155 Sum of the pinned plug sizes
1158 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.TotalUserPinnedPlugSize">
1160 Sum of the user created pinned plug sizes
1163 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapStats">
1168 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.LOHWaitThreads">
1170 Large object heap wait threads
1173 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GlobalHeapHistory">
1175 Process heap statistics
1178 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.FreeList">
1180 Free list efficiency statistics
1183 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocedSinceLastGCMB">
1185 Memory allocated since last GC (mb)
1188 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.RatioPeakAfter">
1190 Ratio of heap size before and after
1193 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocRateMBSec">
1195 Ratio of allocations since last GC over time executed
1198 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizePeakMB">
1200 Peak heap size before GCs (mb)
1203 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.UserAllocated">
1205 Per generation view of user allocated data
1208 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizeBeforeMB">
1210 Heap size before gc (mb)
1213 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenSizeBeforeMB">
1215 Per generation view of heap sizes before GC (mb)
1218 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseTimePercentageSinceLastGC">
1220 This represents the percentage time spent paused for this GC since the last GC completed.
1223 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetUserAllocated(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC},Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC,Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1225 Get what's allocated into gen0 or gen3. For server GC this gets the total for
1229 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetUserAllocatedPerHeap(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC},Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC,System.Int32,Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1231 For a given heap, get what's allocated into gen0 or gen3.
1232 We calculate this differently on 4.0, 4.5 Beta and 4.5 RC+.
1233 The caveat with 4.0 and 4.5 Beta is that when survival rate is 0,
1234 We don't know how to calculate the allocated - so we just use the
1235 last GC's budget (We should indicate this in the tool)
1238 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.is20Event">
1240 Legacy properties that need to be refactored and removed
1243 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.CondemnedReasonGroup">
1245 Condemned reasons are organized into the following groups.
1246 Each group corresponds to one or more reasons.
1247 Groups are organized in the way that they mean something to users.
1250 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.BGCAllocWaitInfo">
1252 Background GC allocation information
1255 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.ThreadWorkSpan">
1257 Span of thread work recorded by CSwitch or CPU Sample Profile events
1260 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.InducedType">
1262 Reason for an induced GC
1265 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.EncodedCondemnedReasons">
1270 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCCondemnedReasons">
1272 Heap condemned reason
1275 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCCondemnedReasons.CondemnedReasonGroups">
1277 This records which reasons are used and the value. Since the biggest value
1278 we need to record is the generation number a byte is sufficient.
1281 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.MarkInfo">
1283 Container for mark times
1286 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCPerHeapHistory">
1291 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCGlobalHeapHistory">
1293 Process heap statistics
1296 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCHeapStats">
1301 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.FreeListEfficiency">
1303 Approximations we do in this function for V4_5 and prior:
1304 On 4.0 we didn't seperate free list from free obj, so we just use fragmentation (which is the sum)
1305 as an approximation. This makes the efficiency value a bit larger than it actually is.
1306 We don't actually update in for the older gen - this means we only know the out for the younger
1307 gen which isn't necessarily all allocated into the older gen. So we could see cases where the
1308 out is > 0, yet the older gen's free list doesn't change. Using the younger gen's out as an
1309 approximation makes the efficiency value larger than it actually is.
1311 For V4_6 this requires no approximation.
1316 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats">
1318 Statistical garbage collector (GC) information about a managed process
1321 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.Count">
1323 Number of GC's for this process
1326 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumInduced">
1328 Number of GC's which were induced, eg. GC.Collect, etc.
1331 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.PinnedObjectSizes">
1333 Total size of the pinned objects seen at collection time
1336 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.PinnedObjectPercentage">
1338 Of all the memory that is current pinned, how much of it is from pinned objects
1341 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumWithPinEvents">
1343 Number of GC's that contained pinned objects
1346 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumWithPinPlugEvents">
1348 Number of GC's that contained pin plugs
1351 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxPauseDurationMSec">
1353 The longest pause duration (ms)
1356 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanPauseDurationMSec">
1358 Avarege pause duration (ms)
1361 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanSizeAfterMB">
1363 Average heap size after a GC (mb)
1366 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanSizePeakMB">
1368 Average peak heap size (mb)
1371 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanCpuMSec">
1373 Average exclusive cpu samples (ms) during GC's
1376 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalPauseTimeMSec">
1378 Total GC pause time (ms)
1381 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxSuspendDurationMSec">
1383 Max suspend duration (ms), should be very small
1386 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxSizePeakMB">
1388 Max peak heap size (mb)
1391 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxAllocRateMBSec">
1393 Max allocation per second (mb/sec)
1396 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalAllocatedMB">
1398 Total allocations in the process lifetime (mb)
1401 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalCpuMSec">
1403 Total exclusive cpu samples (ms)
1406 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalPromotedMB">
1408 Total memory promoted between generations (mb)
1411 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalSizeAfterMB">
1413 (obsolete) Total size of heaps after GC'ss (mb)
1416 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalSizePeakMB">
1418 (obsolete) Total peak heap sizes (mb)
1421 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.Interesting">
1423 Indication if this process is interesting from a GC pov
1426 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.FinalizedObjects">
1428 List of finalizer objects
1431 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.GetGCPauseTimePercentage">
1433 Percentage of time spent paused as compared to the process lifetime
1437 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.ProcessDuration">
1439 Running time of the process. Measured as time spent between first and last GC event observed
1442 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.GCVersionInfoMismatch">
1444 Means it detected that the ETW information is in a format it does not understand.
1447 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.IsServerGCUsed">
1449 Indicator of if ServerGC is enabled (1). -1 indicates that not enough events have been processed to know for sure.
1450 We don't necessarily have the GCSettings event (only fired at the beginning if we attach)
1451 So we have to detect whether we are running server GC or not.
1452 Till we get our first GlobalHeapHistory event which indicates whether we use server GC
1453 or not this remains -1.
1456 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.HeapCount">
1458 Number of heaps. -1 indicates that not enough events have been processed to know for sure.
1461 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.HasDetailedGCInfo">
1463 Indicator if PerHeapHistories is present
1466 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats">
1468 Process statistics about JIT'd code
1471 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.Count">
1473 Number of JITT'd methods
1476 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalCpuTimeMSec">
1478 Total cpu samples for this process
1481 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountForeground">
1483 Number of methods JITT'd by foreground threads just prior to execution
1486 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalForegroundCpuTimeMSec">
1488 Total time spent compiling methods on foreground threads
1491 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountBackgroundMultiCoreJit">
1493 Number of methods JITT'd by the multicore JIT background threads
1496 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalBackgroundMultiCoreJitCpuTimeMSec">
1498 Total time spent compiling methods on background threads for multicore JIT
1501 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountBackgroundTieredCompilation">
1503 Number of methods JITT'd by the tiered compilation background threads
1506 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalBackgroundTieredCompilationCpuTimeMSec">
1508 Total time spent compiling methods on background threads for tiered compilation
1511 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalILSize">
1513 Total IL size for all JITT'd methods
1516 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalNativeSize">
1518 Total native code size for all JITT'd methods
1521 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.IsClr4">
1523 Indication if this is running on .NET 4.x+
1526 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.Interesting">
1528 Indicates if this process has sufficient JIT activity to be interesting
1531 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJitAbortedAtMSec">
1533 Background JIT: Time Jit was aborted (ms)
1536 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadNameBeforeAbort">
1538 Background JIT: Assembly name of last assembly loaded before JIT aborted
1541 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadBeforeAbortMSec">
1543 Background JIT: Relative start time of last assembly loaded before JIT aborted
1546 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadBeforeAbortSuccessful">
1548 Background JIT: Indication if the last assembly load was successful before JIT aborted
1551 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJitThread">
1553 Background JIT: Thread id of the background JIT
1556 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJITEventsOn">
1558 Background JIT: Indication that background JIT events are enabled
1561 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.HasAtLeastOneKnownOptimizationTier">
1563 Indicates whether any of the jitted method code versions in this process have a known optimization tier
1566 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.InliningSuccesses">
1568 List of successfully inlinded methods
1571 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.InliningFailures">
1573 List of failed inlined methods
1576 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.RecordedModules">
1578 Modules encountered while processing managed samples
1581 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.SymbolsMissing">
1583 List of modules whose symbols were not successfully loaded
1586 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.AddMethodToStatistics(Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod)">
1588 Aggregate a method to be included in the statistics
1590 <param name="method"></param>
1592 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.MethodComplete(Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime,Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadTraceDataBase,System.String,System.Int32,System.Boolean@)">
1597 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.MethodKey">
1599 Uniquely represents a method within a process.
1600 Used as a lookup key for data structures.
1603 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.InliningSuccessResult">
1605 JIT inlining successes
1608 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.InliningFailureResult">
1610 JIT inlining failures
1613 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod">
1615 Per method information
1618 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.CompileCpuTimeMSec">
1620 Time taken to compile the method
1623 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ILSize">
1628 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.NativeSize">
1630 Native code size of method
1633 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.StartTimeMSec">
1635 Relative start time of JIT'd method
1638 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.MethodName">
1643 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ModuleILPath">
1648 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ThreadID">
1650 Thread id where JIT'd
1653 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.IsBackground">
1655 Indication of if it was JIT'd in the background
1658 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.CompilationThreadKind">
1660 Indication of if it was JIT'd in the background and why
1663 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.DistanceAhead">
1665 Amount of time the method was forcasted to JIT
1668 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.BlockedReason">
1670 Indication of if the background JIT request was blocked and why
1673 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.RunCpuTimeMSec">
1675 Number of cpu samples for this method
1678 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.OptimizationTier">
1680 The optimization tier at which the method was jitted
1683 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.VersionID">
1685 The version id that is created by the runtime code versioning feature. This is an incrementing counter that starts at 0 for each method.
1686 The ETW events historically name this as the ReJITID event parameter in the payload, but we have now co-opted its usage.
1689 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ForegroundMethodRequestTimeMSec">
1694 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcessesExtensions">
1696 TraceProcess Extension methods
1699 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex">
1701 Each process is given a unique index from 0 to TraceProcesses.Count-1 and unlike
1702 the OS Process ID, is unambiguous (The OS process ID can be reused after a
1703 process dies). ProcessIndex represents this index. By using an enum rather than an int
1704 it allows stronger typing and reduces the potential for errors.
1706 It is expected that users of this library might keep arrays of size TraceProcesses.Count to store
1707 additional data associated with a process in the trace.
1711 <member name="F:Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex.Invalid">
1713 Returned when no appropriate Process exists.
1716 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses">
1718 A TraceProcesses instance represents the list of processes in the Event log.
1720 TraceProcesses are IEnumerable, and will return the processes in order of creation time.
1722 This is a copy of the reduced code from TraceLog!TraceProcesses (removal of elements that
1723 depend on TraceLog - there is a lot of them)
1726 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Log">
1728 The log associated with this collection of processes.
1731 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Count">
1733 The count of the number of TraceProcess instances in the TraceProcesses list.
1736 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Item(Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex)">
1738 Each process that occurs in the log is given a unique index (which unlike the PID is unique), that
1739 ranges from 0 to Count - 1. Return the TraceProcess for the given index.
1742 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.ToString">
1744 An XML representation of the TraceEventProcesses (for debugging)
1747 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Analysis#TraceProcess}#GetEnumerator">
1749 Enumerate all the processes that occurred in the trace log, ordered by creation time.
1752 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.GetProcess(System.Int32,System.Int64)">
1754 Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
1755 and whose offset start time is less than 'timeQPC'. If 'timeQPC' is during the thread's lifetime this
1756 is guaranteed to be the correct process. Using timeQPC = TraceLog.sessionEndTimeQPC will return the
1757 last process with the given PID, even if it had died.
1760 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.#ctor(Microsoft.Diagnostics.Tracing.Analysis.TraceLog,Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
1762 TraceProcesses represents the entire ETL moduleFile log. At the node level it is organized by threads.
1764 The TraceProcesses also is where we put various caches that are independent of the process involved.
1765 These include a cache for TraceModuleFile that represent native images that can be loaded into a
1766 process, as well as the process lookup tables and a cache that remembers the last calls to
1767 GetNameForAddress().
1770 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess">
1772 A step towards a refactored TraceProcess that will move down the dependcy chain from
1773 TraceLog to Source. This is only the portion of TraceProcess that is needed for ManagedProcess
1774 to exist. Also note, that the surface area is intended to match 100% with
1775 Microsoft.Diagnostics.Tracing.Etlx.TraceProcess. The namespace change is intention to avoid
1776 collision of the name and to indicate that it is moving down the depdnency chain.
1778 This is a slightly modified copy of the code from TraceLog!TraceProcess
1781 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ProcessID">
1783 The OS process ID associated with the process. It is NOT unique across the whole log. Use
1784 ProcessIndex for that.
1787 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ProcessIndex">
1789 The index into the logical array of TraceProcesses for this process. Unlike ProcessID (which
1790 may be reused after the process dies, the process index is unique in the log.
1793 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Name">
1795 This is a short name for the process. It is the image file name without the path or suffix.
1798 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.CommandLine">
1800 The command line that started the process (may be empty string if unknown)
1803 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ImageFileName">
1805 The path name of the EXE that started the process (may be empty string if unknown)
1808 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.StartTime">
1810 The time when the process started. Returns the time the trace started if the process existed when the trace started.
1813 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.StartTimeRelativeMsec">
1815 The time when the process started. Returns the time the trace started if the process existed when the trace started.
1816 Returned as the number of MSec from the beginning of the trace.
1819 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EndTime">
1821 The time when the process ended. Returns the time the trace ended if the process existed when the trace ended.
1822 Returned as a DateTime
1825 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EndTimeRelativeMsec">
1827 The time when the process ended. Returns the time the trace ended if the process existed when the trace ended.
1828 Returned as the number of MSec from the beginning of the trace.
1831 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ParentID">
1833 The process ID of the parent process
1836 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Parent">
1838 The process that started this process. Returns null if unknown.
1841 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ExitStatus">
1843 If the process exited, the exit status of the process. Otherwise null.
1846 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.CPUMSec">
1848 The amount of CPU time spent in this process based on the kernel CPU sampling events.
1851 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Is64Bit">
1853 Returns true if the process is a 64 bit process
1856 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Log">
1858 The log file associated with the process.
1861 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.PeakWorkingSet">
1866 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.PeakVirtual">
1871 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Threads">
1873 A list of all the threads that occurred in this process.
1876 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.LoadedModules">
1878 Returns the list of modules that were loaded by the process. The modules may be managed or
1879 native, and include native modules that were loaded event before the trace started.
1882 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EventsInProcess">
1884 Filters events to only those for a particular process.
1887 <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EventsDuringProcess">
1889 Filters events to only that occurred during the time the process was alive.
1893 <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ToString">
1895 An XML representation of the TraceEventProcess (for debugging)
1898 <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLog">
1900 Dummy stubs so Microsoft.Diagnostics.Tracing.Etlx namespace is not necessary
1903 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadata">
1905 The parsed metadata.
1908 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfTrace">
1910 Information about the trace itself.
1913 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfStream">
1915 Information about a single stream in the trace.
1918 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfEnvironment">
1920 The environment the trace was taken in.
1923 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfClock">
1925 A clock definition in the trace.
1928 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfEvent">
1930 A definition of an event.
1933 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataLegacyParser">
1935 A manual parser for CtfMetadata. Eventually this should be replaced when CtfMetadata no longer
1936 uses a custom, BNF style format.
1939 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataParser">
1941 The abstract metadata parser class.
1944 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfDeclarationTypes">
1946 The types that may be declared in CtfMetatdata.
1949 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataDeclaration">
1951 This class represents the top level entry
1954 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfPropertyBag">
1956 A simple class to make parsing out properties easier.
1959 <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfUnresolvedType">
1961 Represents a type which has been referenced by name, but has not yet been resolved to a concrete type.
1964 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser">
1966 A DynamicTraceEventParser is a parser that understands how to read the embedded manifests that occur in the
1967 dataStream (System.Diagnostics.Tracing.EventSources do this).
1969 See also TDHDynamicTraceEventParser which knows how to read the manifest that are registered globally with
1973 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.ManifestEventID">
1975 The event ID for the EventSource manifest emission event.
1978 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource)">
1980 Create a new DynamicTraceEventParser (which can parse ETW providers that dump their manifests
1981 to the ETW data stream) an attach it to the ETW data stream 'source'.
1984 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.DynamicProviders">
1986 Returns a list of providers (their manifest) that this TraceParser knows about.
1989 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.AddDynamicProvider(Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest,System.Boolean)">
1991 Given a manifest describing the provider add its information to the parser.
1994 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.WriteAllManifests(System.String)">
1996 Utility method that stores all the manifests known to the DynamicTraceEventParser to the directory 'directoryPath'
1999 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.ReadAllManifests(System.String)">
2001 Utility method that read all the manifests the directory 'directoryPath' into the parser.
2002 Manifests must end in a .man or .manifest.xml suffix. It will throw an error if
2003 the manifest is incorrect or using unsupported options.
2006 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.IsStatic">
2011 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.DynamicProviderAdded">
2013 This event, will be fired any time a new Provider is added to the table
2014 of ETW providers known to this DynamicTraceEventParser. This includes
2015 when the EventSource manifest events are encountered as well as any
2016 explicit calls to AddDynamicProvider. (including ReadAllManifests).
2018 The Parser will filter out duplicate manifest events, however if an
2019 old version of a provider's manifest is encountered, and later a newer
2020 version is encountered, you can receive this event more than once for
2024 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.GetProviderName">
2029 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.CheckForDynamicManifest(Microsoft.Diagnostics.Tracing.TraceEvent)">
2031 Called on unhandled events to look for manifests. Returns true if we added a new manifest (which may have updated the lookup table)
2034 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
2039 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData">
2041 DynamicTraceEventData is an event that knows how to take runtime information to parse event fields (and payload)
2043 This meta-data is distilled down to a array of field names and an array of PayloadFetches which contain enough
2044 information to find the field data in the payload blob. This meta-data is used in the
2045 DynamicTraceEventData.PayloadNames and DynamicTraceEventData.PayloadValue methods.
2048 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.Dispatch">
2050 Implements TraceEvent interface
2053 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadNames">
2055 Implements TraceEvent interface
2058 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadValue(System.Int32)">
2060 Implements TraceEvent interface
2063 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.StructValue">
2065 Used by PayloadValue to represent a structure. It is basically a IDictionary with a ToString() that
2066 returns the value as JSON.
2069 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.StructValue.Quote(System.Text.StringBuilder,System.String)">
2071 Uses C style conventions to quote a string 'value' and append to the string builder 'sb'.
2072 Thus all \ are turned into \\ and all " into \"
2075 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadString(System.Int32,System.IFormatProvider)">
2077 Implements TraceEvent interface
2080 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.Target">
2082 Implements TraceEvent interface
2085 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.GetCountForArray(Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch,Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetchArrayInfo,System.Int32@)">
2087 Returns the count of elements for the array represented by 'arrayInfo'
2088 It also will adjust 'offset' so that it points at the beginning of the
2089 array data (skips past the count).
2092 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.#ctor(System.UInt16,System.UInt16,System.Type,System.Collections.Generic.IDictionary{System.Int64,System.String})">
2094 Constructor for normal types, (int, string) ...) Also handles Enums (which are ints with a map)
2097 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.#ctor(System.UInt16,Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhInputType,System.Int32)">
2099 Initialized a PayloadFetch for a given inType. REturns Size = DynamicTraceEventData.UNKNOWN_SIZE
2100 if the type is unknown.
2103 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.ArrayPayloadFetch(System.UInt16,Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch,System.UInt16,System.UInt16)">
2105 Returns a payload fetch for a Array. If you know the count, then you can give it.
2108 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.Offset">
2110 Offset from the beginning of the struct.
2113 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.LazyMap">
2115 LazyMap allow out to set a function that returns a map
2116 instead of the map itself. This will be evaluated when the map
2117 is fetched (which gives time for the map table to be populated.
2120 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicManifestTraceEventData">
2122 This class is only used to pretty-print the manifest event itself. It is pretty special purpose
2125 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParserState">
2127 DynamicTraceEventParserState represents the state of a DynamicTraceEventParser that needs to be
2128 serialized to a log file. It does NOT include information about what events are chosen but DOES contain
2129 any other necessary information that came from the ETL data file.
2132 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest">
2134 A ProviderManifest represents the XML manifest associated with the provider.
2137 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.#ctor(System.IO.Stream,System.Int32)">
2139 Read a ProviderManifest from a stream
2142 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.#ctor(System.String)">
2144 Read a ProviderManifest from a file.
2147 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ValidateManifest">
2149 Normally ProviderManifest will fail silently if there is a problem with the manifest. If
2150 you want to see this error you can all this method to force it explicitly It will
2151 throw if there is a problem parsing the manifest.
2154 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.WriteToStream(System.IO.Stream)">
2156 Writes the manifest to 'outputStream' (as UTF8 XML text)
2159 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.WriteToFile(System.String)">
2161 Writes the manifest to a file 'filePath' (as a UTF8 XML)
2163 <param name="filePath"></param>
2165 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ISDynamic">
2167 Set if this manifest came from the ETL data stream file.
2170 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Name">
2172 The name of the ETW provider
2175 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Guid">
2177 The GUID that uniquey identifies the ETW provider
2180 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Version">
2182 The version is defined as the sum of all the version numbers of event version numbers + the number of events defined.
2183 This has the property that if you follow correct versioning protocol (all versions for a linear sequence where a new
2184 versions is only modifies is predecessor by adding new events or INCREASING the version numbers of existing events)
2185 then the version number defined below will always strictly increase.
2187 It turns out that .NET Core removed some events from the TplEtwProvider. To allow removal of truly old events
2188 we also add 100* the largest event ID defined to the version number. That way if you add new events, even if you
2189 removes some (less than 100) it will consider your 'better'.
2192 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Id">
2194 This is an arbitrary id given when the Manifest is created that
2195 identifies where the manifest came from (e.g. a file name or an event etc).
2198 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.BetterThan(Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest)">
2200 Returns true if the current manifest is better to use than 'otherManifest' A manifest is
2201 better if it has a larger version number OR, they have the same version number and it is
2202 physically larger (we assume what happened is people added more properties but did not
2203 update the version field appropriately).
2206 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Manifest">
2208 Retrieve manifest as one big string. Mostly for debugging
2211 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ManifestReader">
2213 Retrieve the manifest as XML
2216 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ToString">
2221 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ParseProviderEvents(System.Func{Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Boolean)">
2223 Call 'callback the the parsed templates for this provider. If 'callback' returns RejectProvider, bail early
2224 Note that the DynamicTraceEventData passed to the delegate needs to be cloned if you use subscribe to it.
2227 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.GetTypeForManifestTypeName(System.String)">
2229 Returns the .NET type corresponding to the manifest type 'manifestTypeName'
2230 Returns null if it could not be found.
2233 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Init">
2235 Initialize the provider. This means to advance the instance variable 'reader' until it it is at the 'provider' node
2236 in the XML. It also has the side effect of setting the name and guid. The rest waits until events are registered.
2239 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords">
2241 Keywords are passed to TraceEventSession.EnableProvider to enable particular sets of
2244 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GC">
2246 Logging when garbage collections and finalization happen.
2249 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHandle">
2251 Events when GC handles are set or destroyed.
2254 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Loader">
2256 Logging when modules actually get loaded and unloaded.
2259 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Jit">
2261 Logging when Just in time (JIT) compilation occurs.
2264 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.NGen">
2266 Logging when precompiled native (NGEN) images are loaded.
2269 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.StartEnumeration">
2271 Indicates that on attach or module load , a rundown of all existing methods should be done
2274 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.StopEnumeration">
2276 Indicates that on detach or process shutdown, a rundown of all existing methods should be done
2279 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Security">
2281 Events associated with validating security restrictions.
2284 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.AppDomainResourceManagement">
2286 Events for logging resource consumption on an app-domain level granularity
2289 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JitTracing">
2291 Logging of the internal workings of the Just In Time compiler. This is fairly verbose.
2292 It details decisions about interesting optimization (like inlining and tail call)
2295 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Interop">
2297 Log information about code thunks that transition between managed and unmanaged code.
2300 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Contention">
2302 Log when lock contention occurs. (Monitor.Enters actually blocks)
2305 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Exception">
2307 Log exception processing.
2310 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Threading">
2312 Log events associated with the threadpool, and other threading events.
2315 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JittedMethodILToNativeMap">
2317 Dump the native to IL mapping of any method that is JIT compiled. (V4.5 runtimes and above).
2320 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.OverrideAndSuppressNGenEvents">
2322 If enabled will suppress the rundown of NGEN events on V4.0 runtime (has no effect on Pre-V4.0 runtimes).
2325 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Type">
2327 Enables the 'BulkType' event
2330 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapDump">
2332 Enables the events associated with dumping the GC heap
2335 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCSampledObjectAllocationHigh">
2337 Enables allocation sampling with the 'fast'. Sample to limit to 100 allocations per second per type.
2338 This is good for most detailed performance investigations. Note that this DOES update the allocation
2339 path to be slower and only works if the process start with this on.
2342 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapSurvivalAndMovement">
2344 Enables events associate with object movement or survival with each GC.
2347 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapCollect">
2349 Triggers a GC. Can pass a 64 bit value that will be logged with the GC Start event so you know which GC you actually triggered.
2352 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapAndTypeNames">
2354 Indicates that you want type names looked up and put into the events (not just meta-data tokens).
2357 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCSampledObjectAllocationLow">
2359 Enables allocation sampling with the 'slow' rate, Sample to limit to 5 allocations per second per type.
2360 This is reasonable for monitoring. Note that this DOES update the allocation path to be slower
2361 and only works if the process start with this on.
2364 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCAllObjectAllocation">
2366 Turns on capturing the stack and type of object allocation made by the .NET Runtime. This is only
2367 supported after V4.5.3 (Late 2014) This can be very verbose and you should seriously using GCSampledObjectAllocationHigh
2368 instead (and GCSampledObjectAllocationLow for production scenarios).
2371 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.SupressNGen">
2373 This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0 (which does not know about this
2374 bit and also does not have NGEN PDBS).
2377 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.PerfTrack">
2382 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Stack">
2384 Also log the stack trace of events for which this is valuable.
2387 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.ThreadTransfer">
2389 This allows tracing work item transfer events (thread pool enqueue/dequeue/ioenqueue/iodequeue/a.o.)
2392 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Debugger">
2394 .NET Debugger events
2397 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Monitoring">
2399 Events intended for monitoring on an ongoing basis.
2402 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Codesymbols">
2404 Events that will dump PDBs of dynamically generated assemblies to the ETW stream.
2407 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Compilation">
2409 Events that provide information about compilation.
2412 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.CompilationDiagnostic">
2414 Diagnostic events for diagnosing compilation and pre-compilation features.
2417 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Default">
2419 Recommend default flags (good compromise on verbosity).
2422 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JITSymbols">
2424 What is needed to get symbols for JIT compiled code.
2427 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapSnapshot">
2429 This provides the flags commonly needed to take a heap .NET Heap snapshot with ETW.
2432 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.State">
2434 Fetch the state object associated with this parser and cast it to
2435 the ClrTraceEventParserState type. This state object contains any
2436 informtion that you need from one event to another to decode events.
2437 (typically ID->Name tables).
2440 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCHeapStatsTraceData.Depth">
2442 Note that this field is derived from teh TotalPromotedSize* fields. If nothing was promoted, it is possible
2443 that this could give a number that is smaller than what GC/Start or GC/Stop would indicate.
2446 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData.Values(System.Int32)">
2448 Returns the edge at the given zero-based index (index less than Count). The returned BulkTypeValues
2449 points the the data in GCBulkRootEdgeTraceData so it cannot live beyond that lifetime.
2452 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues">
2454 This structure just POINTS at the data in the BulkTypeTraceData. It can only be used as long as
2455 the BulkTypeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2458 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeID">
2460 On the desktop this is the Method Table Pointer
2461 In project N this is the pointer to the EE Type
2464 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.ModuleID">
2466 For Desktop this is the Module*
2467 For project N it is image base for the module that the type lives in?
2470 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeNameID">
2472 On desktop this is the Meta-data token?
2473 On project N it is the RVA of the typeID
2476 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeName">
2478 Note that this method returns the type name with generic parameters in .NET Runtime
2479 syntax e.g. System.WeakReference`1[System.Diagnostics.Tracing.EtwSession]
2482 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootEdgeTraceData.Values(System.Int32)">
2484 Returns the edge at the given zero-based index (index less than Count). The returned GCBulkRootEdgeValues
2485 points the the data in GCBulkRootEdgeTraceData so it cannot live beyond that lifetime.
2488 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootEdgeValues">
2490 This structure just POINTS at the data in the GCBulkEdgeTraceData. It can only be used as long as
2491 the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2494 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootConditionalWeakTableElementEdgeTraceData.Values(System.Int32)">
2496 Returns the range at the given zero-based index (index less than Count). The returned GCBulkRootConditionalWeakTableElementEdgeValues
2497 points the the data in GCBulkRootConditionalWeakTableElementEdgeTraceData so it cannot live beyond that lifetime.
2500 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootConditionalWeakTableElementEdgeValues">
2502 This structure just POINTS at the data in the GCBulkRootConditionalWeakTableElementEdgeTraceData. It can only be used as long as
2503 the GCBulkRootConditionalWeakTableElementEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2506 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeTraceData.Values(System.Int32)">
2508 Returns the node at the given zero-based index (idx less than Count). The returned GCBulkNodeNodes
2509 points the the data in GCBulkNodeTraceData so it cannot live beyond that lifetime.
2512 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeTraceData.UnsafeNodes(System.Int32,Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeUnsafeNodes*)">
2514 This unsafe interface may go away. Use the 'Nodes(idx)' instead
2517 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeValues">
2519 This structure just POINTS at the data in the GCBulkNodeTraceData. It can only be used as long as
2520 the GCBulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2523 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeTraceData.Values(System.Int32)">
2525 Returns the 'idx' th edge.
2526 The returned GCBulkEdgeEdges cannot live beyond the TraceEvent that it comes from.
2529 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeValues">
2531 This structure just POINTS at the data in the GCBulkNodeTraceData. It can only be used as long as
2532 the GCBulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2535 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkSurvivingObjectRangesTraceData.Values(System.Int32)">
2537 Returns the range at the given zero-based index (index less than Count). The returned GCBulkSurvivingObjectRangesValues
2538 points the the data in GCBulkSurvivingObjectRangesTraceData so it cannot live beyond that lifetime.
2541 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkSurvivingObjectRangesValues">
2543 This structure just POINTS at the data in the GCBulkEdgeTraceData. It can only be used as long as
2544 the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2547 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkMovedObjectRangesTraceData.Values(System.Int32)">
2549 Returns the range at the given zero-based index (index less than Count). The returned GCBulkSurvivingObjectRangesValues
2550 points the the data in GCBulkSurvivingObjectRangesTraceData so it cannot live beyond that lifetime.
2553 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkMovedObjectRangesValues">
2555 This structure just POINTS at the data in the GCBulkEdgeTraceData. It can only be used as long as
2556 the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2559 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens">
2561 We keep Heap history for every Generation in 'Gens'
2564 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.gc_heap_expand_mechanism">
2566 Taken from gcrecords.h, used to differentiate heap expansion and compaction reasons
2569 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData">
2571 Version 0, PreciseVersion 0.1: Silverlight (x86)
2572 0:041> dt -r2 coreclr!WKS::gc_history_per_heap
2573 +0x000 gen_data : [5] WKS::gc_generation_data
2574 +0x000 size_before : Uint4B/8B : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2575 +0x004 size_after : Uint4B/8B
2576 +0x008 current_size : Uint4B/8B
2577 +0x00c previous_size : Uint4B/8B
2578 +0x010 fragmentation : Uint4B/8B
2579 +0x014 in : Uint4B/8B
2580 +0x018 out : Uint4B/8B
2581 +0x01c new_allocation : Uint4B/8B
2582 +0x020 surv : Uint4B/8B
2583 +0x024 growth : Uint4B/8B
2584 +0x0c8 mem_pressure : Uint4B : 200
2585 +0x0cc mechanisms : [2] Uint4B : 204 (expand), 208 (compact)
2586 +0x0d4 gen_condemn_reasons : Uint4B : 212
2587 +0x0d8 heap_index : Uint4B : 216
2589 clrInstanceId : byte : 220
2591 Version 0, PreciseVersion 0.2: .NET 4.0
2592 0:000> dt -r2 clr!WKS::gc_history_per_heap
2593 +0x000 gen_data : [5] WKS::gc_generation_data
2594 +0x000 size_before : Uint4B/8B : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2595 +0x004 size_after : Uint4B/8B
2596 +0x008 current_size : Uint4B/8B
2597 +0x00c previous_size : Uint4B/8B
2598 +0x010 fragmentation : Uint4B/8B
2599 +0x014 in : Uint4B/8B
2600 +0x018 out : Uint4B/8B
2601 +0x01c new_allocation : Uint4B/8B
2602 +0x020 surv : Uint4B/8B
2603 +0x024 growth : Uint4B/8B
2604 +0x0c8 mem_pressure : Uint4B : 200
2605 +0x0cc mechanisms : [3] Uint4B : 204 (expand), 208 (compact), 212 (concurrent_compact)
2606 +0x0d8 gen_condemn_reasons : Uint4B : 216
2607 +0x0dc heap_index : Uint4B : 220
2609 clrInstanceId : byte : 224
2612 Etw_GCDataPerHeapSpecial(...)
2614 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2615 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2619 Version 2, PreciseVersion 2.1: .NET 4.5 (x86)
2620 0:000> dt -r2 WKS::gc_history_per_heap
2621 clr!WKS::gc_history_per_heap
2622 +0x000 gen_data : [5] WKS::gc_generation_data
2623 +0x000 size_before : Uint4B/8B : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2624 +0x004 free_list_space_before : Uint4B/8B
2625 +0x008 free_obj_space_before : Uint4B/8B
2626 +0x00c size_after : Uint4B/8B
2627 +0x010 free_list_space_after : Uint4B/8B
2628 +0x014 free_obj_space_after : Uint4B/8B
2629 +0x018 in : Uint4B/8B
2630 +0x01c out : Uint4B/8B
2631 +0x020 new_allocation : Uint4B/8B
2632 +0x024 surv : Uint4B/8B
2633 +0x0c8 gen_to_condemn_reasons : WKS::gen_to_condemn_tuning
2634 +0x000 condemn_reasons_gen : Uint4B : 200
2635 +0x004 condemn_reasons_condition : Uint4B : 204
2636 +0x0d0 mem_pressure : Uint4B : 208
2637 +0x0d4 mechanisms : [2] Uint4B : 212 (expand), 216 (compact)
2638 +0x0dc heap_index : Uint4B : 220
2641 Etw_GCDataPerHeapSpecial(...)
2643 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2644 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2646 Version 2, PreciseVersion 2.2: .NET 4.5.2 (x86)
2647 0:000> dt -r2 WKS::gc_history_per_heap
2648 clr!WKS::gc_history_per_heap
2649 +0x000 gen_data : [5] WKS::gc_generation_data
2650 +0x000 size_before : Uint4B/8B : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2651 +0x004 free_list_space_before : Uint4B/8B
2652 +0x008 free_obj_space_before : Uint4B/8B
2653 +0x00c size_after : Uint4B/8B
2654 +0x010 free_list_space_after : Uint4B/8B
2655 +0x014 free_obj_space_after : Uint4B/8B
2656 +0x018 in : Uint4B/8B
2657 +0x01c out : Uint4B/8B
2658 +0x020 new_allocation : Uint4B/8B
2659 +0x024 surv : Uint4B/8B
2660 +0x0c8 gen_to_condemn_reasons : WKS::gen_to_condemn_tuning
2661 +0x000 condemn_reasons_gen : Uint4B : 200
2662 +0x004 condemn_reasons_condition : Uint4B : 204
2663 +0x0d0 mem_pressure : Uint4B : 208
2664 +0x0d4 mechanisms : [2] Uint4B : 212 (expand), 216 (compact)
2665 +0x0dc heap_index : Uint4B : 220
2666 +0x0e0 extra_gen0_committed : Uint8B : 224
2669 Etw_GCDataPerHeapSpecial(...)
2671 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2672 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2674 Version 3: .NET 4.6 (x86)
2675 0:000> dt -r2 WKS::gc_history_per_heap
2676 clr!WKS::gc_history_per_heap
2677 +0x000 gen_data : [4]
2678 WKS::gc_generation_data
2679 +0x000 size_before : Uint4B/8B
2680 +0x004 free_list_space_before : Uint4B/8B
2681 +0x008 free_obj_space_before : Uint4B/8B
2682 +0x00c size_after : Uint4B/8B
2683 +0x010 free_list_space_after : Uint4B/8B
2684 +0x014 free_obj_space_after : Uint4B/8B
2685 +0x018 in : Uint4B/8B
2686 +0x01c pinned_surv : Uint4B/8B
2687 +0x020 npinned_surv : Uint4B/8B
2688 +0x024 new_allocation : Uint4B/8B
2689 +0x0a0 maxgen_size_info : WKS::maxgen_size_increase
2690 +0x000 free_list_allocated : Uint4B/8B
2691 +0x004 free_list_rejected : Uint4B/8B
2692 +0x008 end_seg_allocated : Uint4B/8B
2693 +0x00c condemned_allocated : Uint4B/8B
2694 +0x010 pinned_allocated : Uint4B/8B
2695 +0x014 pinned_allocated_advance : Uint4B/8B
2696 +0x018 running_free_list_efficiency : Uint4B/8B
2697 +0x0bc gen_to_condemn_reasons : WKS::gen_to_condemn_tuning
2698 +0x000 condemn_reasons_gen : Uint4B
2699 +0x004 condemn_reasons_condition : Uint4B
2700 +0x0c4 mechanisms : [2] Uint4B
2701 +0x0cc machanism_bits : Uint4B
2702 +0x0d0 heap_index : Uint4B
2703 +0x0d4 extra_gen0_committed : Uint4B/8B
2705 pal\src\eventprovider\lttng\eventprovdotnetruntime.cpp
2706 FireEtXplatGCPerHeapHistory_V3(...)
2710 GCPerHeapHistory_V3, x86 offsets
2712 (const size_t) FreeListAllocated, : 2
2713 (const size_t) FreeListRejected, : 6
2714 (const size_t) EndOfSegAllocated, : 10
2715 (const size_t) CondemnedAllocated, : 14
2716 (const size_t) PinnedAllocated, : 18
2717 (const size_t) PinnedAllocatedAdvance, : 22
2718 RunningFreeListEfficiency, : 26
2719 CondemnReasons0, : 30
2720 CondemnReasons1 : 34
2724 GCPerHeapHistory_V3_1,
2725 CompactMechanisms, : 38
2726 ExpandMechanisms, : 42
2728 (const size_t) ExtraGen0Commit, : 50
2729 Count, : 54 (number of WKS::gc_generation_data's)
2730 Arg15_Struct_Len_, : ?? not really sent
2731 (const int*) Arg15_Struct_Pointer_ : [58 - 98), ...
2734 Version 3 is now setup to allow "add to the end" scenarios
2738 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.CondemnReasons0">
2740 Returns the condemned generation number
2743 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.CondemnReasons1">
2745 Returns the condemned condition
2748 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.GenData(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
2750 genNumber is a number from 0 to maxGenData-1. These are for generation 0, 1, 2, 3 = Large Object Heap
2751 genNumber = 4 is that second pass for Gen 0.
2754 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData">
2756 Version 0: Silverlight (x86), .NET 4.0
2757 [5] WKS::gc_generation_data
2758 +0x000 size_before : Uint4B/8B
2759 +0x004 size_after : Uint4B/8B
2760 +0x008 current_size : Uint4B/8B
2761 +0x00c previous_size : Uint4B/8B
2762 +0x010 fragmentation : Uint4B/8B
2763 +0x014 in : Uint4B/8B
2764 +0x018 out : Uint4B/8B
2765 +0x01c new_allocation : Uint4B/8B
2766 +0x020 surv : Uint4B/8B
2767 +0x024 growth : Uint4B/8B
2771 Version 2, PreciseVersion 2.1: .NET 4.5 (x86), .NET 4.5.2 (x86)
2772 [5] WKS::gc_generation_data
2773 +0x000 size_before : Uint4B/8B
2774 +0x004 free_list_space_before : Uint4B/8B
2775 +0x008 free_obj_space_before : Uint4B/8B
2776 +0x00c size_after : Uint4B/8B
2777 +0x010 free_list_space_after : Uint4B/8B
2778 +0x014 free_obj_space_after : Uint4B/8B
2779 +0x018 in : Uint4B/8B
2780 +0x01c out : Uint4B/8B
2781 +0x020 new_allocation : Uint4B/8B
2782 +0x024 surv : Uint4B/8B
2784 Version 3: .NET 4.6 (x86)
2785 [4] WKS::gc_generation_data
2786 +0x000 size_before : Uint4B/8B
2787 +0x004 free_list_space_before : Uint4B/8B
2788 +0x008 free_obj_space_before : Uint4B/8B
2789 +0x00c size_after : Uint4B/8B
2790 +0x010 free_list_space_after : Uint4B/8B
2791 +0x014 free_obj_space_after : Uint4B/8B
2792 +0x018 in : Uint4B/8B
2793 +0x01c pinned_surv : Uint4B/8B
2794 +0x020 npinned_surv : Uint4B/8B
2795 +0x024 new_allocation : Uint4B/8B
2798 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SizeBefore">
2800 Size of the generation before the GC, includes fragmentation
2803 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SizeAfter">
2805 Size of the generation after GC. Includes fragmentation
2808 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.ObjSpaceBefore">
2810 Size occupied by objects at the beginning of the GC, discounting fragmentation.
2811 Only exits on 4.5 RC and beyond.
2814 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Fragmentation">
2816 This is the fragmenation at the end of the GC.
2819 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.ObjSizeAfter">
2821 Size occupied by objects, discounting fragmentation.
2824 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeListSpaceBefore">
2826 This is the free list space (ie, what's threaded onto the free list) at the beginning of the GC.
2827 Only exits on 4.5 RC and beyond.
2830 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeObjSpaceBefore">
2832 This is the free obj space (ie, what's free but not threaded onto the free list) at the beginning of the GC.
2833 Only exits on 4.5 RC and beyond.
2836 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeListSpaceAfter">
2838 This is the free list space (ie, what's threaded onto the free list) at the end of the GC.
2839 Only exits on 4.5 Beta and beyond.
2842 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeObjSpaceAfter">
2844 This is the free obj space (ie, what's free but not threaded onto the free list) at the end of the GC.
2845 Only exits on 4.5 Beta and beyond.
2848 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.In">
2850 This is the amount that came into this generation on this GC
2853 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Out">
2855 This is the number of bytes survived in this generation.
2858 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Budget">
2860 This is the new budget for the generation
2863 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SurvRate">
2865 This is the survival rate
2868 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCGlobalHeapHistoryTraceData">
2872 Version 1: Silverlight (x86), .NET 4.0, .NET 4.5, .NET 4.5.2
2874 0:041> dt -r3 WKS::gc_history_global
2875 coreclr!WKS::gc_history_global
2876 +0x000 final_youngest_desired : Uint4B/8B
2877 +0x004 num_heaps : Uint4B
2878 +0x008 condemned_generation : Int4B
2879 +0x00c gen0_reduction_count : Int4B
2881 reason_alloc_soh = 0n0
2882 reason_induced = 0n1
2883 reason_lowmemory = 0n2
2885 reason_alloc_loh = 0n4
2886 reason_oos_soh = 0n5
2887 reason_oos_loh = 0n6
2888 reason_induced_noforce = 0n7
2889 reason_gcstress = 0n8
2891 +0x014 global_mechanims_p : Uint4B
2893 FireEtwGCGlobalHeapHistory_V1(gc_data_global.final_youngest_desired, // upcast on 32bit to __int64
2894 gc_data_global.num_heaps,
2895 gc_data_global.condemned_generation,
2896 gc_data_global.gen0_reduction_count,
2897 gc_data_global.reason,
2898 gc_data_global.global_mechanims_p,
2899 GetClrInstanceId());
2901 clr!WKS::gc_history_global
2902 +0x000 final_youngest_desired : Uint4B/8B
2903 +0x004 num_heaps : Uint4B
2904 +0x008 condemned_generation : Int4B
2905 +0x00c gen0_reduction_count : Int4B
2907 reason_alloc_soh = 0n0
2908 reason_induced = 0n1
2909 reason_lowmemory = 0n2
2911 reason_alloc_loh = 0n4
2912 reason_oos_soh = 0n5
2913 reason_oos_loh = 0n6
2914 reason_induced_noforce = 0n7
2915 reason_gcstress = 0n8
2916 reason_lowmemory_blocking = 0n9
2917 reason_induced_compacting = 0n10
2918 reason_lowmemory_host = 0n11
2920 +0x014 pause_mode : Int4B
2921 +0x018 mem_pressure : Uint4B
2922 +0x01c global_mechanims_p : Uint4B
2924 FireEtwGCGlobalHeapHistory_V2(gc_data_global.final_youngest_desired, // upcast on 32bit to __int64
2925 gc_data_global.num_heaps,
2926 gc_data_global.condemned_generation,
2927 gc_data_global.gen0_reduction_count,
2928 gc_data_global.reason,
2929 gc_data_global.global_mechanims_p,
2930 GetClrInstanceId());
2931 gc_data_global.pause_mode,
2932 gc_data_global.mem_pressure);
2936 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.FinalizeObjectTraceData.TypeName">
2938 Gets the full type name including generic parameters in runtime syntax
2939 For example System.WeakReference`1[System.Diagnostics.Tracing.EtwSession]
2942 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWTraceData.Values(System.Int32)">
2944 Returns the CCW at the given zero-based index (index less than Count). The returned GCBulkRootCCWValues
2945 points the the data in GCBulkRootCCWTraceData so it cannot live beyond that lifetime.
2948 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWTraceData.ValueSize">
2950 Computes the size of one GCBulkRootCCWValues structure.
2951 TODO FIX NOW Can rip out and make a constant 44 after 6/2014
2954 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWValues">
2956 This structure just POINTS at the data in the GCBulkRootCCWTraceData. It can only be used as long as
2957 the GCBulkRootCCWTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2960 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWTraceData.Values(System.Int32)">
2962 Returns the edge at the given zero-based index (index less than Count). The returned GCBulkRCWValues
2963 points the the data in GCBulkRCWTraceData so it cannot live beyond that lifetime.
2966 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWValues">
2968 This structure just POINTS at the data in the GCBulkRCWTraceData. It can only be used as long as
2969 the GCBulkRCWTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2972 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootStaticVarTraceData.Values(System.Int32)">
2974 Returns 'idx'th static root.
2975 The returned GCBulkRootStaticVarStatics cannot live beyond the TraceEvent that it comes from.
2976 The implementation is highly tuned for sequential access.
2979 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootStaticVarValues">
2981 This structure just POINTS at the data in the GCBulkRootStaticVarTraceData. It can only be used as long as
2982 the GCBulkRootStaticVarTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
2985 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData.InstructionPointer(System.Int32)">
2987 Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
2988 be a thread offset routine (if you get a complete eventToStack).
2990 <param name="index">The index of the frame to fetch. 0 is the CPU EIP, 1 is the Caller of that
2992 <returns>The instruction pointer of the specified frame.</returns>
2994 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData.InstructionPointers">
2996 Access to the instruction pointers as a unsafe memory blob
2999 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData.ModuleILFileName">
3001 This is simply the file name part of the ModuleILPath. It is a convenience method.
3004 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.Threading">
3006 Log events associated with the threadpool, and other threading events.
3009 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.JittedMethodILToNativeMap">
3011 Dump the native to IL mapping of any method that is JIT compiled. (V4.5 runtimes and above).
3014 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.SupressNGen">
3016 This supresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0 (which does not know about this
3017 bit and also does not have NGEN PDBS).
3020 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.PerfTrack">
3025 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.CodeSymbolsRundown">
3027 Dump PDBs for dynamically generated modules.
3030 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.Compilation">
3032 Events that provide information about compilation.
3035 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrTraceEventParserState">
3037 ClrTraceEventParserState holds all information that is shared among all events that is
3038 needed to decode Clr events. This class is registered with the source so that it will be
3039 persisted. Things in here include
3041 * TypeID to TypeName mapping,
3044 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkNodeTraceData.Values(System.Int32)">
3046 Returns the edge at the given zero-based index (index less than Count). The returned BulkNodeValues
3047 points the the data in BulkNodeTraceData so it cannot live beyond that lifetime.
3050 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkNodeValues">
3052 This structure just POINTS at the data in the BulkNodeTraceData. It can only be used as long as
3053 the BulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
3056 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkAttributeTraceData.Values(System.Int32)">
3058 Returns the edge at the given zero-based index (index less than Count). The returned BulkAttributeValues
3059 points the the data in BulkAttributeTraceData so it cannot live beyond that lifetime.
3062 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkAttributeValues">
3064 This structure just POINTS at the data in the BulkAttributeTraceData. It can only be used as long as
3065 the BulkAttributeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
3068 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkEdgeTraceData.Values(System.Int32)">
3070 Returns the edge at the given zero-based index (index less than Count). The returned BulkEdgeValues
3071 points the the data in BulkEdgeTraceData so it cannot live beyond that lifetime.
3074 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkEdgeValues">
3076 This structure just POINTS at the data in the BulkNodeTraceData. It can only be used as long as
3077 the BulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
3080 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser">
3082 The KernelTraceEventParser is a class that knows how to decode the 'standard' kernel events.
3083 It exposes an event for each event of interest that users can subscribe to.
3085 see TraceEventParser for more
3088 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.KernelSessionName">
3090 The special name for the Kernel session
3093 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords">
3095 This is passed to TraceEventSession.EnableKernelProvider to enable particular sets of
3096 events. See http://msdn.microsoft.com/en-us/library/aa363784(VS.85).aspx for more information on them
3099 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.None">
3104 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskFileIO">
3106 Logs the mapping of file IDs to actual (kernel) file names.
3109 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskIO">
3111 Loads the completion of Physical disk activity.
3114 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ImageLoad">
3116 Logs native modules loads (LoadLibrary), and unloads
3119 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.MemoryHardFaults">
3121 Logs all page faults that must fetch the data from the disk (hard faults)
3124 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.NetworkTCPIP">
3126 Logs TCP/IP network send and receive events.
3129 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Process">
3131 Logs process starts and stops.
3134 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ProcessCounters">
3136 Logs process performance counters (TODO When?) (Vista+ only)
3137 see KernelTraceEventParser.ProcessPerfCtr, ProcessPerfCtrTraceData
3140 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Profile">
3142 Sampled based profiling (every msec) (Vista+ only) (expect 1K events per proc per second)
3145 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Thread">
3147 Logs threads starts and stops
3150 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ContextSwitch">
3152 log thread context switches (Vista only) (can be > 10K events per second)
3155 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskIOInit">
3157 log Disk operations (Vista+ only)
3158 Generally not TOO volumous (typically less than 1K per second) (Stacks associated with this)
3161 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Dispatcher">
3163 Thread Dispatcher (ReadyThread) (Vista+ only) (can be > 10K events per second)
3166 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.FileIO">
3168 log file FileOperationEnd (has status code) when they complete (even ones that do not actually
3169 cause Disk I/O). (Vista+ only)
3170 Generally not TOO volumous (typically less than 1K per second) (No stacks associated with these)
3173 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.FileIOInit">
3175 log the start of the File I/O operation as well as the end. (Vista+ only)
3176 Generally not TOO volumous (typically less than 1K per second)
3179 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Memory">
3181 Logs all page faults (hard or soft)
3182 Can be pretty volumous (> 1K per second)
3185 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Registry">
3187 Logs activity to the windows registry.
3188 Can be pretty volumous (> 1K per second)
3191 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.SystemCall">
3193 log calls to the OS (Vista+ only)
3194 This is VERY volumous (can be > 100K events per second)
3197 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.VirtualAlloc">
3199 Log Virtual Alloc calls and VirtualFree. (Vista+ Only)
3200 Generally not TOO volumous (typically less than 1K per second)
3203 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.VAMap">
3205 Log mapping of files into memory (Win8 and above Only)
3206 Generally low volume.
3209 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.AdvancedLocalProcedureCalls">
3211 Logs Advanced Local Procedure call events.
3214 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DeferedProcedureCalls">
3216 log defered procedure calls (an Kernel mechanism for having work done asynchronously) (Vista+ only)
3219 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Driver">
3221 Device Driver logging (Vista+ only)
3224 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Interrupt">
3226 log hardware interrupts. (Vista+ only)
3229 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.SplitIO">
3231 Disk I/O that was split (eg because of mirroring requirements) (Vista+ only)
3234 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Default">
3236 Good default kernel flags. (TODO more detail)
3239 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Verbose">
3241 These events are too verbose for normal use, but this give you a quick way of turing on 'interesting' events
3242 This does not include SystemCall because it is 'too verbose'
3245 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ThreadTime">
3247 Use this if you care about blocked time.
3250 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.OS">
3252 You mostly don't care about these unless you are dealing with OS internals.
3255 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.All">
3257 All legal kernel events
3260 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.NonContainer">
3262 These are the kernel events that are not allowed in containers. Can be subtracted out.
3265 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.PMCProfile">
3267 Turn on PMC (Precise Machine Counter) events. Only Win 8
3270 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ReferenceSet">
3272 Kernel reference set events (like XPERF ReferenceSet). Fully works only on Win 8.
3275 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ThreadPriority">
3277 Events when thread priorities change.
3280 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.IOQueue">
3282 Events when queuing and dequeuing from the I/O completion ports.
3285 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Handle">
3287 Handle creation and closing (for handle leaks)
3290 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.NonOSKeywords">
3292 These keywords can't be passed to the OS, they are defined by KernelTraceEventParser
3295 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ParserTrackingOptions">
3297 What his parser should track by default.
3300 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.KernelPathToUserPathMapper">
3302 Defines how kernel paths are converted to user paths. Setting it overrides the default path conversion mechanism.
3305 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ProcessStartGroup">
3307 Registers both ProcessStart and ProcessDCStart
3310 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ProcessEndGroup">
3312 Registers both ProcessEnd and ProcessDCStop
3315 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ThreadStartGroup">
3317 Registers both ThreadStart and ThreadDCStart
3320 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ThreadEndGroup">
3322 Registers both ThreadEnd and ThreadDCStop
3325 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ImageLoadGroup">
3327 Registers both ImageLoad and ImageDCStart
3330 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ImageUnloadGroup">
3332 Registers both ImageUnload and ImageDCStop
3335 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.MemoryMemInfo">
3337 Rasied every 0.5s with memory metrics of the current machine.
3340 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.SysConfigVolumeMapping">
3342 File names in ETW are the Kernel names, which need to be mapped to the drive specification users see.
3343 This event indicates this mapping.
3346 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState">
3348 KernelTraceEventParserState holds all information that is shared among all events that is
3349 needed to decode kernel events. This class is registered with the source so that it will be
3350 persisted. Things in here include
3352 * FileID to FileName mapping,
3353 * ThreadID to ProcessID mapping
3354 * Kernel file name to user file name mapping
3357 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState.FileIDToName(System.UInt64,System.UInt64,System.Int64)">
3359 If you have a file object (per-open-file) in addition to a fileKey, try using both
3360 to look up the file name.
3363 <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState.threadIDtoProcessIDRundown">
3365 This is for the circular buffer case. In that case we may not have thread starts (and thus we don't
3366 have entries in threadIDtoProcessID). Because HistoryTable finds the FIRST entry GREATER than the
3367 given threadID we NEGATE all times before we place it in this table.
3369 Also, because circular buffering is not the common case, we only add entries to this table if needed
3370 (if we could not find the thread ID using threadIDtoProcessID).
3373 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping">
3375 Keeps track of the mapping from kernel names to file system names (drives)
3378 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping.#ctor">
3380 Create a new KernelToUserDriveMapping that can look up kernel names for drives and map them to windows drive letters.
3383 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping.Item(System.String)">
3385 Returns the string representing the windows drive letter for the kernel drive name 'kernelName'
3387 <param name="kernelName"></param>
3390 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.EventTraceHeaderTraceData.UTCOffsetMinutes">
3392 This is the number of minutes between the local time where the data was collected and UTC time.
3393 It does NOT take Daylight savings time into account.
3394 It is positive if your time zone is WEST of Greenwich.
3397 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.ThreadTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3399 Indicate that StartAddr and Win32StartAddr are a code addresses that needs symbolic information
3402 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CSwitchTraceData.NewThreadID">
3404 We report a context switch from from the new thread. Thus NewThreadID == ThreadID.
3407 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.Irp">
3409 The I/O Response Packet address. This represents the 'identity' of this particular I/O
3412 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.HighResResponseTime">
3414 This is the time since the I/O was initiated, in source.PerfFreq (QPC) ticks.
3417 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.DiskServiceTimeMSec">
3419 This is the actual time the disk spent servicing this IO. Same as elapsed time for real time providers.
3422 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.ElapsedTimeMSec">
3424 The time since the I/O was initiated.
3427 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOFlushBuffersTraceData.HighResResponseTime">
3429 This is the time since the I/O was initiated, in source.PerfFreq (QPC) ticks.
3432 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOFlushBuffersTraceData.ElapsedTimeMSec">
3434 The time since the I/O was initiated.
3437 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIONameTraceData.FileKey">
3439 This is a handle that represents a file NAME (not an open file).
3440 In the MSDN does this field is called FileObject. However in other events FileObject is something
3441 returned from Create file and is different. Events have have both (and some do) use FileKey. Thus
3442 I use FileKey uniformly to avoid confusion.
3445 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.CreateOptions">
3447 See the Windows CreateFile API CreateOptions for this
3450 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.CreateDispostion">
3452 See Windows CreateFile API CreateDisposition for this.
3455 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.FileAttributes">
3457 See Windows CreateFile API ShareMode parameter
3460 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.ShareAccess">
3462 See windows CreateFile API ShareMode parameter
3465 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CreateDisposition">
3467 See Windows CreateFile function CreateDispostion parameter.
3470 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CreateOptions">
3472 See Windows CreateFile function FlagsAndAttributes parameter.
3473 TODO FIX NOW: these have not been validated yet.
3476 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIODirEnumTraceData.FileObject">
3478 The FileObject is the object for the Directory (used by CreateFile to open and passed to Close to close)
3481 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIODirEnumTraceData.FileKey">
3483 The FileKey is the object that represents the name of the directory.
3486 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.ImageLoadTraceData.BuildTime">
3488 This is the TimeDateStamp converted to a DateTime
3489 TODO: daylight savings time seems to mess this up.
3492 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3494 Indicate that ProgramCounter is a code address that needs symbolic information
3497 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryHardFaultTraceData.ElapsedTimeMSec">
3499 The time spent during the page fault.
3502 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageAccessTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3504 Indicate that the Address is a code address that needs symbolic information
3507 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData">
3509 This event is emitted by the Microsoft-Windows-Kernel-Memory with Keyword 0x40 KERNEL_MEM_KEYWORD_MEMINFO_EX every .5 seconds
3512 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData.Values(System.Int32)">
3514 Returns the edge at the given zero-based index (index less than Count). The returned MemoryProcessMemInfoValues
3515 points the the data in MemoryProcessMemInfoTraceData so it cannot live beyond that lifetime.
3518 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData.PayloadValue(System.Int32)">
3520 The fields after 'Count' are the first value in the array of working sets.
3523 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoValues">
3525 This structure just POINTS at the data in the MemoryProcessMemInfoTraceData. It can only be used as long as
3526 the MemoryProcessMemInfoTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.
3529 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemInfoTraceData.PayloadValue(System.Int32)">
3531 The fields after 'Count' are the first value in the array of working sets.
3534 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.ExecutingDPC">
3536 Are we currently executing a Deferred Procedure Call (a mechanism the kernel uses to
3537 'steal' a thread to run its own work). If this is true, the CPU time is really
3538 not logically related to the process (it is kernel time).
3541 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.ExecutingISR">
3543 Are we currently executing a Interrupt Service Routine? Like ExecutingDPC if this
3544 is true the thread is really doing Kernel work, not work for the process.
3547 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.NonProcess">
3549 NonProcess is true if ExecutingDPC or ExecutingISR is true.
3552 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.Priority">
3554 The thread's current priority (higher is more likely to run). A normal thread with a normal base
3556 see http://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx for more
3559 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.Rank">
3561 Your scheduling If the thread is not part of a scheduling group, this is 0 (see callout.c)
3564 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3566 Indicate that the Address is a code address that needs symbolic information
3569 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData">
3571 PMC (Precise Machine Counter) events are fired when a CPU counter trips. The the ProfileSource identifies
3572 which counter it is. The PerfInfoCollectionStart events will tell you the count that was configured to trip
3576 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3578 Indicate that Address is a code address that needs symbolic information
3581 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SysCallEnterTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3583 Indicate that the Address is a code address that needs symbolic information
3586 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData">
3588 Collects the call callStacks for some other event.
3590 (TODO: always for the event that preceded it on the same thread)?
3593 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.EventTimeStampQPC">
3595 The timestamp of the event which caused this stack walk using QueryPerformaceCounter
3599 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.EventTimeStampRelativeMSec">
3601 Converts this to a time relative to the start of the trace in msec.
3604 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.FrameCount">
3606 The total number of eventToStack frames collected. The Windows OS currently has a maximum of 96 frames.
3609 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.InstructionPointer(System.Int32)">
3611 Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
3612 be a thread offset routine (if you get a complete stack).
3614 <param name="index">The index of the frame to fetch. 0 is the CPU EIP, 1 is the Caller of that
3616 <returns>The instruction pointer of the specified frame.</returns>
3618 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.InstructionPointers">
3620 Access to the instruction pointers as a unsafe memory blob
3623 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.FixupData">
3625 StackWalkTraceData does not set Thread and process ID fields properly. if that.
3628 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData">
3630 To save space, stack walks in Win8 can be complressed. The stack walk event only has a
3631 reference to a stack Key which is then looked up by StackWalkDefTraceData.
3634 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.EventTimeStampQPC">
3636 The timestamp of the event which caused this stack walk using QueryPerformaceCounter
3640 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.EventTimeStampRelativeMSec">
3642 Converts this to a time relative to the start of the trace in msec.
3645 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.StackKey">
3647 Returns a key that can be used to look up the stack in KeyDelete or KeyRundown events
3650 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.FixupData">
3652 StackWalkTraceData does not set Thread and process ID fields properly. if that.
3655 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData">
3657 This event defines a stack and gives it a unique id (the StackKey), which StackWalkRefTraceData can point at.
3660 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.StackKey">
3662 Returns a key that can be used to look up the stack in KeyDelete or KeyRundown events
3665 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.FrameCount">
3667 The total number of eventToStack frames collected. The Windows OS currently has a maximum of 96 frames.
3670 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.InstructionPointer(System.Int32)">
3672 Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
3673 be a thread offset routine (if you get a complete complete).
3675 <param name="index">The index of the frame to fetch. 0 is the CPU EIP, 1 is the Caller of that
3677 <returns>The instruction pointer of the specified frame.</returns>
3679 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.InstructionPointers">
3681 Access to the instruction pointers as a unsafe memory blob
3684 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SystemPathsTraceData.SystemDirectory">
3686 e.g. c:\windows\system32
3689 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SystemPathsTraceData.SystemWindowsDirectory">
3694 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsNDISPacketCapture.PacketFragmentArgs.AppendPrintable(System.Byte*,System.Byte*,System.Text.StringBuilder,System.String,System.Int32)">
3696 Sees if up to 'max' bytes of frag-fragend is a printable string and if so prints it to 'sb' with
3700 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser">
3702 Kernel traces have information about images that are loaded, however they don't have enough information
3703 in the events themselves to unambigously look up PDBs without looking at the data inside the images.
3704 This means that symbols can't be resolved unless you are on the same machine on which you gathered the data.
3706 XPERF solves this problem by adding new 'synthetic' events that it creates by looking at the trace and then
3707 opening each DLL mentioned and extracting the information needed to look PDBS up on a symbol server (this
3708 includes the PE file's TimeDateStamp as well as a PDB Guid, and 'pdbAge' that can be found in the DLLs header.
3710 These new events are added when XPERF runs the 'merge' command (or -d flag is passed). It is also exposed
3711 through the KernelTraceControl.dll!CreateMergedTraceFile API.
3713 SymbolTraceEventParser is a parser for extra events.
3716 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDDbgID_RSDS">
3718 The DbgIDRSDS event is added by XPERF for every Image load. It contains the 'PDB signature' for the DLL,
3719 which is enough to unambiguously look the image's PDB up on a symbol server.
3722 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageID">
3724 Every DLL has a Timestamp in the PE file itself that indicates when it is built. This event dumps this timestamp.
3725 This timestamp is used to be as the 'signature' of the image and is used as a key to find the symbols, however
3726 this has mostly be superseded by the DbgID/RSDS event.
3729 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDFileVersion">
3731 The FileVersion event contains information from the file version resource that most DLLs have that indicated
3732 detailed information about the exact version of the DLL. (What is in the File->Properties->Version property
3736 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDNone">
3738 I don't really care about this one, but I need a definition in order to exclude it because it
3739 has the same timestamp as a imageLoad event, and two events with the same timestamp confuse the
3740 association between a stack and the event for the stack.
3743 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.MetaDataEventInfo">
3745 This event has a TRACE_EVENT_INFO as its payload, and allows you to decode an event
3748 <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.MetaDataEventMapInfo">
3750 The event describes a Map (bitmap or ValueMap), and has a payload as follows
3753 EVENT_MAP_INFO EventMapInfo;
3756 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Xml">
3758 The value of the one string payload property.
3761 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
3763 Construct a TraceEvent template which has one string payload field with the given metadata and action
3766 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.ToXml(System.Text.StringBuilder)">
3768 implementation of TraceEvent Interface.
3771 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.PayloadNames">
3773 implementation of TraceEvent Interface.
3776 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.PayloadValue(System.Int32)">
3778 implementation of TraceEvent Interface.
3781 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Dispatch">
3783 implementation of TraceEvent Interface.
3786 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Target">
3791 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser">
3793 RegisteredTraceEventParser uses the standard windows provider database (TDH, what gets registered with wevtutil)
3794 to find the names of events and fields of the events).
3797 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
3799 Create a new RegisteredTraceEventParser and attach it to the given TraceEventSource
3802 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetManifestForRegisteredProvider(System.String)">
3804 Given a provider name that has been registered with the operating system, get
3805 a string representing the ETW manifest for that provider. Note that this
3806 manifest is not as rich as the original source manifest because some information
3807 is not actually compiled into the binary manifest that is registered with the OS.
3810 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetManifestForRegisteredProvider(System.Guid)">
3812 Given a provider GUID that has been registered with the operating system, get
3813 a string representing the ETW manifest for that provider. Note that this
3814 manifest is not as rich as the original source manifest because some information
3815 is not actually compiled into the binary manifest that is registered with the OS.
3818 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetKeywordStr(System.Collections.Generic.SortedDictionary{System.UInt64,System.String},System.UInt64)">
3820 Generates a space separated list of set of keywords 'keywordSet' using the table 'keywords'
3821 It will generate new keyword names if needed and add them to 'keywords' if they are not present.
3824 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TaskInfo">
3826 Class used to accumulate information about Tasks in the implementation of GetManifestForRegisteredProvider
3829 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TryLookupWorker(Microsoft.Diagnostics.Tracing.TraceEvent,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Parsers.MapKey,System.Collections.Generic.IDictionary{System.Int64,System.String}})">
3831 Try to look up 'unknonwEvent using TDH or the TraceLogging mechanism. if 'mapTable' is non-null it will be used
3832 look up the string names for fields that have bitsets or enumerated values. This is only need for the KernelTraceControl
3833 case where the map information is logged as special events and can't be looked up with TDH APIs.
3836 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser">
3838 TdhEventParser takes the Trace Diagnostics Helper (TDH) TRACE_EVENT_INFO structure and
3839 (passed as a byte*) and converts it to a DynamicTraceEventData which which
3840 can be used to parse events of that type. You first create TdhEventParser and then
3841 call ParseEventMetaData to do the parsing.
3844 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.#ctor(System.Byte*,Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Parsers.MapKey,System.Collections.Generic.IDictionary{System.Int64,System.String}})">
3846 Creates a new parser from the TRACE_EVENT_INFO held in 'buffer'. Use
3847 ParseEventMetaData to then parse it into a DynamicTraceEventData structure.
3848 EventRecord can be null and mapTable if present allow the parser to resolve maps (enums), and can be null.
3851 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.ParseEventMetaData">
3853 Actually performs the parsing of the TRACE_EVENT_INFO passed in the constructor
3857 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.ParseFields(System.Int32,System.Int32)">
3859 Parses at most 'maxFields' fields starting at the current position.
3860 Will return the parse fields in 'payloadNamesRet' and 'payloadFetchesRet'
3861 Will return true if successful, false means an error occurred.
3864 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser">
3866 ExternalTraceEventParser is an abstract class that acts as a parser for any 'External' resolution
3867 This include the TDH (RegisteredTraceEventParser) as well as the WPPTraceEventParser.
3870 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
3872 Create a new ExternalTraceEventParser and attach it to the given TraceEventSource
3875 <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.IsStatic">
3880 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.GetProviderName">
3885 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.HasDefinitionForTemplate(Microsoft.Diagnostics.Tracing.TraceEvent)">
3887 Returns true if the RegisteredTraceEventParser would return 'template' in EnumerateTemplates
3890 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
3895 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.OnNewEventDefintion(Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean)">
3897 Register 'template' so that if there are any subscriptions to template they get registered with the source.
3900 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.MapKey">
3902 Used to look up Enums (provider x enumName); Very boring class.
3905 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState">
3907 TDHDynamicTraceEventParserState represents the state of a TDHDynamicTraceEventParser that needs to be
3908 serialized to a log file. It does NOT include information about what events are chosen but DOES contain
3909 any other necessary information that came from the ETL data file or the OS TDH APIs.
3912 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.TraceEventComparer">
3914 This defines what it means to be the same event. For manifest events it means provider and event ID
3915 for classic, it means that taskGuid and opcode match.
3918 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.ToStream(FastSerialization.Serializer)">
3920 Implements IFastSerializable interface
3923 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.FromStream(FastSerialization.Deserializer)">
3925 Implements IFastSerializable interface
3928 <member name="T:Microsoft.Diagnostics.Tracing.Parsers.WppTraceEventParser">
3930 This parser knows how to decode Windows Software Trace Preprocessor (WPP) events. In order to decode
3931 the events it needs access to the TMF files that describe the events (these are created from the PDB at
3934 You will generally use this for the 'FormattedMessage' property of the event.
3937 <member name="M:Microsoft.Diagnostics.Tracing.Parsers.WppTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.String)">
3939 Construct a new WPPTraceEventParser that is attached to 'source'. Once you do this the source
3940 will understand WPP events. In particular you can subscribe to the Wpp.All event to get the
3941 stream of WPP events in the source. For WppTraceEventParser to function, it needs the TMF
3942 files for the events it will decode. You should pass the directory to find these TMF files
3943 in 'TMFDirectory'. Each file should have the form of a GUID.tmf.
3945 <param name="source"></param>
3946 <param name="TMFDirectory"></param>
3948 <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource">
3950 ETWReloggerTraceEventSource is designed to be able to write ETW files using an existing ETW input stream (either a file, files or real time session) as a basis.
3951 The relogger capabilities only exist on Windows 8 OSes and beyond.
3953 The right way to think about this class is that it is just like ETWTraceEventSource, but it also has a output file associated with it, and WriteEvent APIs that
3954 can be used to either copy events from the event stream (the common case), or inject new events (high level stats).
3957 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.#ctor(System.String,System.String)">
3959 Create an ETWReloggerTraceEventSource that can takes its input from the family of etl files inputFileName
3960 and can write them to the ETL file outputFileName (.kernel*.etl, .user*.etl .clr*.etl)
3962 This is a shortcut for ETWReloggerTraceEventSource(inputFileName, TraceEventSourceType.MergeAll, outputFileStream)
3965 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventSourceType,System.String)">
3967 Create an ETWReloggerTraceEventSource that can takes its input from a variety of sources (either a single file,
3968 a set of files, or a real time ETW session (based on 'type'), and can write these events to a new ETW output
3969 file 'outputFileName.
3972 <member name="P:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.OutputUsesCompressedFormat">
3974 The output file can use a compressed form or not. Compressed forms can only be read on Win8 and beyond. Defaults to true.
3977 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
3979 Writes an event from the input stream to the output stream of events.
3982 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ConnectEventSource(System.Diagnostics.Tracing.EventSource)">
3984 Connect the given EventSource so any events logged from it will go to the output stream of events.
3985 Once connected, you may only write events from this EventSource while processing the input stream
3986 (that is during the callback of an input stream event), because the context for the EventSource event
3987 (e.g. timestamp, proesssID, threadID ...) will be derived from the current event being processed by
3991 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(System.Guid,TraceReloggerLib._EVENT_DESCRIPTOR@,Microsoft.Diagnostics.Tracing.TraceEvent,System.Object[])">
3993 Writes an event that did not exist previously into the data stream, The context data (time, process, thread, activity, comes from 'an existing event')
3996 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(System.Guid,TraceReloggerLib._EVENT_DESCRIPTOR@,System.DateTime,System.Int32,System.Int32,System.Int32,System.Guid,System.Object[])">
3998 Writes an event that did not exist previously into the data stream, The context data (time, process, thread, activity, comes from 'an existing event') is given explicitly
4001 <member name="P:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.EventsLost">
4003 implementing TraceEventDispatcher
4006 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.Process">
4008 implementing TraceEventDispatcher
4011 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.Dispose(System.Boolean)">
4013 Implements TraceEventDispatcher.Dispose
4016 <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.StopProcessing">
4018 Implements TraceEventDispatcher.StopProcessing
4021 <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ReloggerEventListener">
4023 This is used by the ConnectEventSource to route events from the EventSource to the relogger.
4026 <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ReloggerCallbacks">
4028 This is the class the Win32 APIs call back on.
4031 <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource">
4033 A ETWTraceEventSource represents the stream of events that was collected from a
4034 TraceEventSession (eg the ETL moduleFile, or the live session event stream). Like all
4035 TraceEventSource, it logically represents a stream of TraceEvent s. Like all
4036 TraceEventDispathers it supports a callback model where Parsers attach themselves to this
4037 sources, and user callbacks defined on the parsers are called when the 'Process' method is called.
4039 * See also TraceEventDispatcher
4040 * See also TraceEvent
4041 * See also #ETWTraceEventSourceInternals
4042 * See also #ETWTraceEventSourceFields
4045 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.String)">
4047 Open a ETW event trace moduleFile (ETL moduleFile) for processing.
4049 <param name="fileName">The ETL data moduleFile to open</param>`
4051 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventSourceType)">
4053 Open a ETW event source for processing. This can either be a moduleFile or a real time ETW session
4055 <param name="fileOrSessionName">
4056 If type == ModuleFile this is the name of the moduleFile to open.
4057 If type == Session this is the name of real time session to open.</param>
4058 <param name="type"></param>
4060 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.Collections.Generic.IEnumerable{System.String})">
4062 Process all the files in 'fileNames' in order (that is all the events in the first
4063 file are processed, then the second ...). Intended for parsing the 'Multi-File' collection mode.
4065 <param name="fileNames">The list of files path names to process (in that order)</param>
4067 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Process">
4069 Processes all the events in the data source, issuing callbacks that were subscribed to. See
4070 #Introduction for more
4072 <returns>false If StopProcesing was called</returns>
4074 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ReprocessEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
4076 Reprocess a pre-constructed event which this processor has presumably created. Helpful to re-examine
4077 "unknown" events, perhaps after a manifest has been received from the ETW stream.
4078 Note when queuing events to reprocess you must <see cref="M:Microsoft.Diagnostics.Tracing.TraceEvent.Clone">Clone</see> them first
4079 or certain internal data may no longer be available and you may receive memory access violations.
4081 <param name="ev">Event to re-process.</param>
4083 <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.LogFileName">
4085 The log moduleFile that is being processed (if present)
4086 TODO: what does this do for Real time sessions?
4089 <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.SessionName">
4091 The name of the session that generated the data.
4094 <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Size">
4096 The size of the log, will return 0 if it does not know.
4099 <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.EventsLost">
4101 returns the number of events that have been lost in this session. Note that this value is NOT updated
4102 for real time sessions (it is a snapshot). Instead you need to use the TraceEventSession.EventsLost property.
4105 <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.CanReset">
4107 Returns true if the Process can be called multiple times (if the Data source is from a
4108 moduleFile, not a real time stream.
4111 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.SynchronizeClock">
4113 This routine is only useful/valid for real-time sessions.
4115 TraceEvent.TimeStamp internally is stored using a high resolution clock called the Query Performance Counter (QPC).
4116 This clock is INDEPENDENT of the system clock used by DateTime. These two clocks are synchronized to within 2 msec at
4117 session startup but they can drift from there (typically 2msec / min == 3 seconds / day). Thus if you have long
4118 running real time session it becomes problematic to compare the timestamps with those in another session or something
4119 timestamped with the system clock. SynchronizeClock will synchronize the TraceEvent.Timestamp clock with the system
4120 clock again. If you do this right before you start another session, then the two sessions will be within 2 msec of
4121 each other, and their timestamps will correlate. Doing it periodically (e.g. hourly), will keep things reasonably close.
4123 TODO: we can achieve perfect synchronization by exposing the QPC tick sync point so we could read the sync point
4124 from one session and set that exact sync point for another session.
4127 <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions">
4129 Options that can be passed to GetModulesNeedingSymbols
4132 <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.OnlyNGENImages">
4134 This is the default, where only NGEN images are included (since these are the only images whose PDBS typically
4135 need to be resolved agressively AT COLLECTION TIME)
4138 <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.IncludeUnmanagedModules">
4140 If set, this option indicates that non-NGEN images should also be included in the list of returned modules
4143 <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.IncludeModulesWithOutSamples">
4145 Normally only modules what have a CPU or stack sample are included in the list of assemblies (thus you don't
4146 unnecessarily have to generate NGEN PDBS for modules that will never be looked up). However if there are
4147 events that have addresses that need resolving that this routine does not recognise, this option can be
4148 set to insure that any module that was event LOADED is included. This is inefficient, but guarenteed to
4152 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.GetModulesNeedingSymbols(System.String,Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions)">
4154 Given an ETL file, returns a list of the full paths to DLLs that were loaded in the trace that need symbolic
4155 information (PDBs) so that the stack traces and CPU samples can be properly resolved. By default this only
4156 returns NGEN images since these are the ones that need to be resolved and generated at collection time.
4159 <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ImageData">
4161 Image data is a trivial record for image data, where it is keyed by the base address, processID and name.
4164 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.GetOSPointerSize">
4166 Returns the size of pointer (8 or 4) for the operating system (not necessarily the process)
4169 <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.QPCTime">
4171 This is a little helper class that maps QueryPerformanceCounter (QPC) ticks to DateTime. There is an error of
4172 a few msec, but as long as every one uses the same one, we probably don't care.
4175 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Dispose(System.Boolean)">
4180 <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Finalize">
4185 <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.lockObj">
4187 Used by real time TraceLog on Windows7.
4188 If we have several real time sources we have them coming in on several threads, but we want the illusion that they
4189 are one source (thus being processed one at a time). Thus we want a lock that is taken on every dispatch.
4192 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventSourceType">
4194 The kinds of data sources that can be opened (see ETWTraceEventSource)
4197 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.MergeAll">
4199 Look for any files like *.etl or *.*.etl (the later holds things like *.kernel.etl or *.clrRundown.etl ...)
4202 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.FileOnly">
4204 Look for a ETL moduleFile *.etl as the event data source
4207 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.Session">
4209 Use a real time session as the event data source.
4212 <member name="M:Microsoft.Diagnostics.Tracing.EventPipe.EventCache.Flush">
4214 After all events have been parsed we could have some straglers that weren't
4215 earlier than any sorted event. Sort and dispatch those now.
4218 <member name="M:Microsoft.Diagnostics.Tracing.EventPipe.ClrThreadStackWalkTraceData.InstructionPointer(System.Int32)">
4220 Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
4221 be a thread offset routine (if you get a complete eventToStack).
4223 <param name="index">The index of the frame to fetch. 0 is the CPU EIP, 1 is the Caller of that
4225 <returns>The instruction pointer of the specified frame.</returns>
4227 <member name="P:Microsoft.Diagnostics.Tracing.EventPipe.ClrThreadStackWalkTraceData.InstructionPointers">
4229 Access to the instruction pointers as a unsafe memory blob
4232 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventSource">
4234 EventPipeEventSource knows how to decode EventPipe (generated by the .NET core runtime).
4235 Please see <see href="https://github.com/Microsoft/perfview/blob/master/src/TraceEvent/EventPipe/EventPipeFormat.md" />for details on the file format.
4237 By conventions files of such a format are given the .netperf suffix and are logically
4238 very much like a ETL file in that they have a header that indicate things about
4239 the trace as a whole, and a list of events. Like more modern ETL files the
4240 file as a whole is self-describing. Some of the events are 'MetaData' events
4241 that indicate the provider name, event name, and payload field names and types.
4242 Ordinary events then point at these meta-data event so that logically all
4243 events have a name some basic information (process, thread, timestamp, activity
4244 ID) and user defined field names and values of various types.
4247 <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.Version">
4249 This is the version number reader and writer (although we don't don't have a writer at the moment)
4250 It MUST be updated (as well as MinimumReaderVersion), if breaking changes have been made.
4251 If your changes are forward compatible (old readers can still read the new format) you
4252 don't have to update the version number but it is useful to do so (while keeping MinimumReaderVersion unchanged)
4253 so that readers can quickly determine what new content is available.
4256 <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.MinimumReaderVersion">
4258 This field is only used for writers, and this code does not have writers so it is not used.
4259 It should be set to Version unless changes since the last version are forward compatible
4260 (old readers can still read this format), in which case this shoudl be unchanged.
4263 <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.MinimumVersionCanRead">
4265 This is the smallest version that the deserializer here can read. Currently
4266 we are careful about backward compat so our deserializer can read anything that
4267 has ever been produced. We may change this when we believe old writers basically
4268 no longer exist (and we can remove that support code).
4271 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventSource.OnNewEventPipeEventDefinition(Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader,FastSerialization.PinnedStreamReader)">
4273 Give meta-data for an event, passed as a EventPipeEventMetaDataHeader and readerForParameters
4274 which is a StreamReader that points at serialized parameter information, decode the meta-data
4275 and record a template associated with this source. The readerForParameters is advanced beyond
4276 the event parameters information.
4279 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventSource.ReadEventParametersAndBuildTemplate(Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader,FastSerialization.PinnedStreamReader)">
4281 Given the EventPipe metaData header and a stream pointing at the serialized meta-data for the parameters for the
4282 event, create a new DynamicTraceEventData that knows how to parse that event.
4283 ReaderForParameters.Current is advanced past the parameter information.
4286 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeBlock">
4288 The Nettrace format is divided up into various blocks - this is a base class that handles the common
4289 aspects for all of them.
4292 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventBlock">
4294 An EVentPipeEventBlock represents a block of events. It basicaly only has
4295 one field, which is the size in bytes of the block. But when its FromStream
4296 is called, it will perform the callbacks for the events (thus deserializing
4297 it performs dispatch).
4300 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeMetadataBlock">
4302 A block of metadata carrying events. These 'events' aren't dispatched by EventPipeEventSource - they carry
4303 the metadata that allows the payloads of non-metadata events to be decoded.
4306 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeSequencePointBlock">
4308 An EventPipeSequencePointBlock represents a stream divider that contains
4309 updates for all thread event sequence numbers, indicates that all queued
4310 events can be sorted and dispatched, and that all cached events/stacks can
4314 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeStackBlock">
4316 An EventPipeStackBlock represents a block of interned stacks. Events refer
4320 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader">
4322 Private utility class.
4324 An EventPipeEventMetaDataHeader holds the information that can be shared among all
4325 instances of an EventPipe event from a particular provider. Thus it contains
4326 things like the event name, provider, It however does NOT contain the data
4327 about the event parameters (the names of the fields and their types), That is
4328 why this is a meta-data header and not all the meta-data.
4330 This class has two main functions
4331 1. The constructor takes a PinnedStreamReader and decodes the serialized metadata
4332 so you can access the data conveniently (but it does not decode the parameter info)
4333 2. It remembers a EVENT_RECORD structure (from ETW) that contains this data)
4334 and has a function GetEventRecordForEventData which converts from a
4335 EventPipeEventHeader (the raw serialized data) to a EVENT_RECORD (which
4336 is what TraceEvent needs to look up the event an pass it up the stack.
4339 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.#ctor(FastSerialization.PinnedStreamReader,System.Int32,System.Int32,System.Int32,System.Int32)">
4341 Creates a new MetaData instance from the serialized data at the current position of 'reader'
4342 of length 'length'. This typically points at the PAYLOAD AREA of a meta-data events)
4343 'fileFormatVersionNumber' is the version number of the file as a whole
4344 (since that affects the parsing of this data) and 'processID' is the process ID for the
4345 whole stream (since it needs to be put into the EVENT_RECORD.
4347 When this constructor returns the reader has read up to the serialized information about
4348 the parameters. We do this because this code does not know the best representation for
4349 this parameter information and so it just lets other code handle it.
4352 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.GetEventRecordForEventData(Microsoft.Diagnostics.Tracing.EventPipeEventHeader@)">
4354 Given a EventPipeEventHeader takes a EventPipeEventHeader that is specific to an event, copies it
4355 on top of the static information in its EVENT_RECORD which is specialized meta-data
4356 and returns a pointer to it. Thus this makes the EventPipe look like an ETW provider from
4357 the point of view of the upper level TraceEvent logic.
4360 <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.MetaDataId">
4362 This is a number that is unique to this meta-data blob. It is expected to be a small integer
4363 that starts at 1 (since 0 is reserved) and increases from there (thus an array can be used).
4364 It is what is matched up with EventPipeEventHeader.MetaDataId
4367 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.ReadEventMetaData(FastSerialization.PinnedStreamReader,System.Int32)">
4369 Reads the meta data for information specific to one event.
4372 <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventHeader">
4374 Private utility class.
4376 At the start of every event from an EventPipe is a header that contains
4377 common fields like its size, threadID timestamp etc. EventPipeEventHeader
4378 is the layout of this. Events have two variable sized parts: the user
4379 defined fields, and the stack. EventPipEventHeader knows how to
4380 decode these pieces (but provides no semantics for it.
4382 It is not a public type, but used in low level parsing of EventPipeEventSource.
4385 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventHeader.GetTotalEventSize(System.Byte*,System.Int32)">
4387 Size of the event header + stack + payload (includes EventSize field itself)
4390 <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventHeader.GetHeaderSize(System.Int32)">
4392 Header Size is defined to be the number of bytes before the Payload bytes.
4395 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTree">
4397 SampleInfos of a set of stackSource by eventToStack. This represents the entire call tree. You create an empty one in using
4398 the default constructor and use 'AddSample' to add stackSource to it. You traverse it by
4401 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.#ctor(Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind)">
4403 Creates an empty call tree, indicating the scaling policy of the metric. You populate it by assigning a StackSOurce to the tree.
4406 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.StackSource">
4408 A CallTree is generated from a StackSource. Setting the StackSource causes the tree to become populated.
4411 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.PercentageBasis">
4413 When calculating percentages, the PercentageBasis do we use as 100%. By default we use the
4414 Inclusive time for the root, but that can be changed here.
4417 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.Root">
4419 Returns the root node of the call tree.
4422 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.NodeIndexLimit">
4424 An upper bound for the node indexes in the call tree. (All indexes
4425 are strictly less than this number) Thus ASSSUMING YOU DON'T ADD
4426 NEW NODES, an array of this size can be used to index the nodes (and
4427 thus lookup nodes by index or to store additional information about a node).
4430 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.CallerCallee(System.String)">
4432 Get a CallerCalleeNode for the nodes in the call tree named 'nodeName'
4435 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ByID">
4437 Returns a list of nodes that have statistics rolled up by treeNode by ID. It is not
4438 sorted by anything in particular. Note that ID is not quite the same thing as the
4439 name. You can have two nodes that have different IDs but the same Name. These
4440 will show up as two distinct entries in the resulting list.
4443 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ByIDSortedExclusiveMetric">
4445 Returns the list returned by the ByID property sorted by exclusive metric.
4448 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.FoldNodesUnder(System.Single,System.Boolean)">
4450 If there are any nodes that have strictly less than to 'minInclusiveMetric'
4451 then remove the node, placing its samples into its parent (thus the parent's
4452 exclusive metric goes up).
4454 If useWholeTraceMetric is true, nodes are only folded if their inclusive metric
4455 OVER THE WHOLE TRACE is less than 'minInclusiveMetric'. If false, then a node
4456 is folded if THAT NODE has less than the 'minInclusiveMetric'
4458 Thus if 'useWholeTraceMetric' == false then after calling this routine no
4459 node will have less than minInclusiveMetric.
4463 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.Sort(System.Collections.Generic.IComparer{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4465 Cause the children of each CallTreeNode in the CallTree to be sorted (accending) based on comparer
4468 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.SortInclusiveMetricDecending">
4470 Sorting by InclusiveMetric Decending is so common, provide a shortcut.
4473 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ScalingPolicy">
4475 When converting the InclusiveMetricByTime to a InclusiveMetricByTimeString you have to decide
4476 how to scale the samples to the digits displayed in the string. This enum indicates this policy
4479 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.TimeHistogramController">
4481 The nodes in the calltree have histograms in time, all of these histograms share a controller that
4482 contains sharable information. This propertly returns that TimeHistogramController
4485 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ScenarioHistogram">
4487 The nodes in the calltree have histograms indexed by scenario (which is user defiend),
4488 all of these histograms share a controller that contains sharable information.
4489 This propertly returns that ScenarioHistogramController
4492 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.DisableParallelism">
4494 Turns off logic for computing call trees in parallel. Safer but slower.
4497 <para>This is off by default following indications of race conditions.</para>
4500 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.FreeMemory">
4502 Break all links in the call tree to free as much memory as possible.
4505 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ToXml(System.IO.TextWriter)">
4507 Write an XML representtaion of the CallTree to 'writer'
4510 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ToString">
4512 An XML representtaion of the CallTree (for debugging)
4515 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.AccumulateSumByID(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase},Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4517 Traverse the subtree of 'treeNode' into the m_sumByID dictionary. We don't want to
4518 double-count inclusive times, so we have to keep track of all callers currently on the
4519 stack and we only add inclusive times for nodes that are not already on the stack.
4522 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind">
4524 ScalingPolicyKind represents the desired way to scale the metric in the samples.
4527 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind.ScaleToData">
4529 This is the default. In this policy, 100% is chosen so that the histogram is scaled as best it can.
4532 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind.TimeMetric">
4534 It assumes that the metric represents time
4537 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeIndex">
4539 Represents a unique ID for a node in a call tree. Can be used to look up a call tree node easily.
4540 It is a dense value (from 0 up to a maximum).
4543 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeIndex.Invalid">
4545 An Invalid Node Index.
4548 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase">
4550 A CallTreeNodeBase is the inforation in a CallTreeNode without parent or child relationships.
4551 ByName nodes and Caller-Callee nodes need this because they either don't have or need different
4552 parent-child relationships.
4555 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.Index">
4557 Returns a unique small, dense number (suitable for looking up in an array) that represents
4558 this call tree node (unlike the ID, which more like the name of the frame of the node), so you
4559 can have many nodes with the same name, but only one with the same index. See CallTree.GetNodeIndexLimit.
4562 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4564 Create a CallTreeNodeBase (a CallTreeNode without children) which is a copy of another one.
4567 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.Name">
4569 The Frame name that this tree node represents.
4572 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.DisplayName">
4574 Currently the same as Name, but could contain additional info.
4575 Suitable for display but not for programmatic comparison.
4578 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ID">
4580 The ID represents a most fine grained uniqueness associated with this node. It can represent
4581 a method, but for sources that support 'goto source' functionality these IDs actually represent
4582 particular lines (or more precisely program counter locations), within the method. Thus it is
4583 very likely that there are call tree nodes that have the same name but different IDs.
4585 This can be StackSourceFrameIndex.Invalid for Caller-callee nodes (which have names, but no useful ID)
4587 If ID != Invalid, and the IDs are the same then the names are guaranteed to be the same.
4590 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetric">
4592 The sum of the metric of all samples that are in this node or any child of this node (recursively)
4595 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.AverageInclusiveMetric">
4597 The average metric of all samples that are in this node or any child of this node (recursively).
4598 This is simply InclusiveMetric / InclusiveCount.
4601 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveMetric">
4603 The sum of the metric of all samples that are in this node
4606 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedMetric">
4608 The sum of the metric of all samples in this node that are there because they were folded (inlined). It is alwasy less than or equal to ExclusiveMetric.
4611 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveCount">
4613 The sum of the count of all samples that are in this node or any child of this node (recursively)
4616 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveCount">
4618 The sum of the count of all samples that are in this node
4621 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedCount">
4623 The sum of the count of all samples in this node that are there because they were folded (inlined). It is alwasy less than or equal to ExclusiveCount.
4626 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricPercent">
4628 The inclusive metric, normalized to the total metric for the entire tree.
4631 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveMetricPercent">
4633 The exclusive metric, normalized to the total metric for the entire tree.
4636 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedMetricPercent">
4638 The exclusive folded metric, normalized to the total metric for the entire tree.
4641 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FirstTimeRelativeMSec">
4643 The time of the first sample for this node or any of its children (recursively)
4646 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FirstTimeRelMSec">
4648 The time of the first sample for this node or any of its children (recursively)
4651 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.LastTimeRelativeMSec">
4653 The time of the last sample for this node or any of its children (recursively)
4656 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.LastTimeRelMSec">
4658 The time of the last sample for this node or any of its children (recursively)
4661 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.DurationMSec">
4663 The difference between the first and last sample (in MSec).
4666 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.CallTree">
4668 The call tree that contains this node.
4671 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByTime">
4673 Returns the histogram that groups of samples associated with this node or any of its children by time buckets
4676 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByTimeString">
4678 Returns a string that represents the InclusiveMetricByTime Histogram by using character for every bucket (like PerfView)
4681 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByScenario">
4683 Returns the histogram that groups of samples associated with this node or any of its children by scenario buckets
4686 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByScenarioString">
4688 Returns a string that represents the InclusiveMetricByScenario Histogram by using character for every bucket (like PerfView)
4691 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetSamples(System.Boolean,System.Func{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,System.Boolean})">
4693 Returns all the original stack samples in this node. If exclusive==true then just he
4694 sample exclusively in this node are returned, otherwise it is the inclusive samples.
4696 If the original stack source that was used to create this CodeTreeNode was a FilterStackSource
4697 then that filtering is removed in the returned Samples.
4699 Returns the total number of samples (the number of times 'callback' is called)
4701 If the callback returns false, the iteration over samples stops.
4704 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetTrees(System.Action{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4706 While 'GetSamples' can return all the samples in the tree, this is a relatively
4707 inefficient way of representing the samples. Instead you can return a list of
4708 trees whose samples represent all the samples. This is what GetTrees does.
4709 It calls 'callback' on a set of trees that taken as a whole have all the samples
4712 Note you ave to be careful when using this for inclusive summation of byname nodes because
4713 you will get trees that 'overlap' (bname nodes might refer into the 'middle' of another
4714 call tree). This can be avoided pretty easily by simply stopping inclusive traversal
4715 whenever a tree node with that ID occurs (see GetSamples for an example).
4718 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ToXmlAttribs(System.IO.TextWriter)">
4720 Returns a string representing the set of XML attributes that can be added to another XML element.
4723 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ToString">
4725 An XML representation of the CallTreeNodeBase (for debugging)
4728 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FreeMemory">
4730 The GUI sadly holds on to Call things in the model in its cache, and call tree nodes have linkes to whole
4731 call tree. To avoid the GUI cache from holding on to the ENTIRE MODEL, we neuter the nodes when we are
4732 done with them so that even if they are pointed to by the GUI cache it does not hold onto most of the
4733 (dead) model. FreeMemory does this neutering.
4736 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.CombineByIdSamples(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase,System.Boolean,System.Double,System.Boolean)">
4738 Combines the 'this' node with 'otherNode'. If 'newOnStack' is true, then the inclusive
4739 metrics are also updated.
4741 Note that I DON'T accumulate other.m_samples into this.m_samples. This is because we want to share
4742 samples as much a possible. Thus nodes remember their samples by pointing at other call trees
4743 and you fetch the samples by an inclusive walk of the tree.
4746 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetSamplesForTreeNode(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Boolean,System.Func{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,System.Boolean},Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
4748 To avoid double-counting for byname nodes, with we can be told to exclude any children with a particular ID
4749 (the ID of the ByName node itself) if are doing the inclusive case. The goal is to count every reachable
4750 tree exactly once. We do this by conceptually 'marking' each node with ID at the top level (when they are
4751 enumerated as children of the Byname node), and thus any node with that excludeChildrenWithID is conceptually
4752 marked if you encounter it as a child in the tree itself (so you should exclude it). The result is that
4753 every node is visited exactly once (without the expense of having a 'visited' bit).
4756 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode">
4758 Represents a single treeNode in a CallTree
4760 Each node keeps all the sample with the same path to the root.
4761 Each node also remembers its parent (caller) and children (callees).
4762 The nodes also keeps the IDs of all its samples (so no information
4763 is lost, just sorted by stack). You get at this through the
4764 CallTreeNodeBase.GetSamples method.
4767 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.Caller">
4769 The caller (parent) of this node
4772 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.Callees">
4774 The nodes this node calls (its children).
4777 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IsLeaf">
4779 Returns true if Callees is empty.
4782 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.AllCallees">
4784 AllCallees is an extension of CallTreesNodes to support graphs (e.g. memory heaps).
4785 It always starts with the 'normal' Callees, however in addition if we are
4786 displaying a Graph, it will also children that were 'pruned' when the graph was
4787 transformed into a tree. (by using StackSource.GetRefs).
4790 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.HasChildren">
4792 Returns true if AllCallees is non-empty.
4795 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IsGraphNode">
4797 Returns true if the call trees came from a graph (thus AllCallees may be strictly larger than Callees)
4800 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.ToXml(System.IO.TextWriter,System.String)">
4802 Writes an XML representation of the call tree Node it 'writer'
4805 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.ToString">
4807 Returns an XML representation of the call tree Node (for debugging);
4810 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.GetBrokenStackCount">
4812 Adds up the counts of all nodes called 'BROKEN' nodes in a particular tree node
4814 This is a utility function.
4817 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IndentString(System.Boolean)">
4819 Creates a string that has spaces | and + signs that represent the indentation level
4820 for the tree node. (Called from XAML)
4823 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4825 Implements CallTreeNodesBase interface
4828 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.SortAll(System.Collections.Generic.IComparer{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode},Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4830 Sort the childre of every node in the te
4832 <param name="comparer"></param>
4834 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.GetCallees">
4836 Some calltrees already fill in their children, others do so lazily, in which case they
4837 override this method.
4840 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.FoldNodesUnder(System.Single,System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4842 Fold away any nodes having less than 'minInclusiveMetric'. If 'sumByID' is non-null then the
4843 only nodes that have a less then the minInclusiveMetric for the whole trace are folded.
4846 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode">
4848 A CallerCalleeNode gives statistics that focus on a NAME. (unlike calltrees that use ID)
4849 It takes all stackSource that have callStacks that include that treeNode and compute the metrics for
4850 all the callers and all the callees for that treeNode.
4853 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.#ctor(System.String,Microsoft.Diagnostics.Tracing.Stacks.CallTree)">
4855 Given a complete call tree, and a Name within that call tree to focus on, create a
4856 CallerCalleeNode that represents the single Caller-Callee view for that treeNode.
4859 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Callers">
4861 The list of CallTreeNodeBase nodes that called the method represented by this CallerCalleeNode
4864 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Callees">
4866 The list of CallTreeNodeBase nodes that where called by the method represented by this CallerCalleeNode
4869 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.ToXml(System.IO.TextWriter,System.String)">
4871 wrtites an XML representation of the call tree Node it 'writer'
4874 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.ToString">
4876 Returns an XML representation of the CallerCalleeNode (for debugging);
4879 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4881 Implements CallTreeNodesBase interface
4884 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.AccumulateSamplesForNode(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Int32,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4886 A caller callee view is a summation which centers around one 'focus' node which is represented by the CallerCalleeNode.
4887 This node has a caller and callee list, and these nodes (as well as the CallerCalleNode itself) represent the aggregation
4888 over the entire tree.
4890 AccumulateSamplesForNode is the routine that takes a part of a aggregated call tree (represented by 'treeNode' and adds
4891 in the statistics for that call tree into the CallerCalleeNode aggregations (and its caller and callee lists).
4893 'recursionsCount' is the number of times the focus node name has occurred in the path from 'treeNode' to the root. In
4894 addition to setting the CallerCalleeNode aggregation, it also returns a 'weightedSummary' inclusive aggregation
4895 FOR JUST treeNode (the CallerCalleNode is an aggregation over the entire call tree accumulated so far).
4897 The key problem for this routine to avoid is double counting of inclusive samples in the face of recursive functions.
4898 Thus all samples are weighted by the recursion count before being included in 'weightedSummaryRet (as well as in
4899 the CallerCalleeNode and its Callers and Callees).
4901 An important optimization is the ability to NOT create (but rather reuse) CallTreeNodes when returning weightedSummaryRet.
4902 To accomplish this the weightedSummaryScaleRet is needed. To get the correct numerical value for weightedSummaryRet, you
4903 actually have to scale values by weightedSummaryScaleRet before use. This allows us to represent weights of 0 (subtree has
4904 no calls to the focus node), or cases where the subtree is completely uniform in its weighting (the subtree does not contain
4905 any additional focus nodes), by simply returning the tree node itself and scaling it by the recursion count).
4907 isUniformRet is set to false if anyplace in 'treeNode' does not have the scaling factor weightedSummaryScaleRet. This
4908 means the the caller cannot simply scale 'treeNode' by a weight to get weightedSummaryRet.
4911 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Find(System.Collections.Generic.Dictionary{System.String,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase}@,System.String)">
4913 Find the Caller-Callee treeNode in 'elems' with name 'frameName'. Always succeeds because it
4914 creates one if necessary.
4917 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode">
4919 AggregateCallTreeNode supports a multi-level caller-callee view.
4921 It does this by allow you to take any 'focus' node (typically a byname node)
4922 and compute a tree of its callers and a tree of its callees. You do this
4923 by passing the node of interested to either the 'CallerTree' or 'CalleeTrees'.
4925 The AggregateCallTreeNode remembers if if is a caller or callee node and its
4926 'Callees' method returns the children (which may in fact be Callers).
4928 What is nice about 'AggregateCallTreeNode is that it is lazy, and you only
4929 form the part of the tree you actually explore. A classic 'caller-callee'
4930 view is simply the caller and callee trees only explored to depth 1.
4933 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.CallerTree(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4935 Given any node (typically a byName node, but it works on any node), Create a
4936 tree rooted at 'node' that represents the callers of that node.
4939 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.CalleeTree(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4941 Given any node (typically a byName node, but it works on any node), Create a
4942 tree rooted at 'node' that represents the callees of that node.
4945 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.GetTrees(System.Action{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4947 Calls 'callback' for each distinct call tree in this node. Note that the same
4948 trees can overlap (in the case of recursive functions), so you need a mechanism
4949 for visiting a tree only once.
4952 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.ToString">
4954 Returns an XML representation of the AggregateCallTreeNode (for debugging);
4957 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4959 Implementation of CallTreeNodeBase interface
4962 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.GetCallees">
4964 Implementation of CallTreeNode interface
4967 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.MergeCaller(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode},System.Int32)">
4969 See m_callerOffset and MergeCallee for more.
4971 The 'this' node is a AggregateCallTree representing the 'callers' nodes. Like
4972 MergeCallee the aggregate node represents a list of CallTreeNodes. However unlike
4973 MergeCallee, the list of CallTreeNodes each represent a sample (a complete call stack)
4974 and 'callerOffset' indicates how far 'up' that stack is the node of interest.
4977 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.MergeCallee(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4979 An aggregateCallTreeNode is exactly that, the sum of several callTrees
4980 (each of which represent a number of individual samples). Thus we had to
4981 take each sample (which is 'treenode' and merge it into the aggregate.
4982 We do this one at a time. Thus we call MergeCallee for each calltree
4983 in our list and we find the 'callees' of each of those nodes, and create
4984 aggregates for the children (which is in calleeList).
4986 This routine is not recursive and does not touch most of the tree but
4987 it does call SubtractOutTrees which is recursive and may look at a lot
4988 of the tree (although we try to minimize this)
4991 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.SubtractOutTrees(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode)">
4993 Traverse 'treeCallee' and subtract out the inclusive time for any tree that matches 'idToExclude' from the node 'statsRet'.
4994 This is needed in AggregateCallTrees because the same trees from the focus node are in the list to aggregate, but are also
4995 in the subtree's in various places (and thus are counted twice). We solve this by walking this subtree (in this routine)
4996 and subtracting out any nodes that match 'idToExclude'.
4998 As an optimization this routine also sets the m_recurision bit 'statsRet' if anywhere in 'treeCallee' we do find an id to
4999 exclude. That way in a common case (where there is no instances of 'idToExclude') we don't have to actualy walk the
5000 tree the second time (we simply know that there is no adjustment necessary.
5003 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.m_trees">
5005 An AggregateCallTree remembers all its samples by maintaining a list of call trees
5006 that actually contain the samples that the Aggregate represents. m_trees hold this.
5009 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.m_callerOffset">
5011 AggregateCallTreeNode can represent either a 'callers' tree or a 'callees' tree. For
5012 the 'callers' tree case the node represented by the aggregate does NOT have same ID as
5013 the tree in the m_trees list. Instead the aggregate is some node 'up the chain' toward
5014 the caller. m_callerOffset keeps track of this (it is the same number for all elements
5017 For callee nodes, this number is not needed. Thus we use a illegal value (-1) to
5018 represent that fact that the node is a callee node rather than a caller node.
5021 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter.WriteStackViewAsJson(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.String,System.Boolean)">
5023 exports provided StackSource to a Chromium Trace File format
5024 schema: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/
5027 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.SpeedScopeStackSourceWriter.WriteStackViewAsJson(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.String)">
5029 exports provided StackSource to a https://www.speedscope.app/ format
5030 schema: https://www.speedscope.app/file-format-schema.json
5033 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.SpeedScopeStackSourceWriter.WriteToFile(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Collections.Generic.IReadOnlyList{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent}},System.Collections.Generic.IReadOnlyList{System.String},System.IO.TextWriter,System.String)">
5035 writes pre-calculated data to SpeedScope format
5038 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.Histogram">
5040 A Histogram is logically an array of floating point values. Often they
5041 represent frequency, but it can be some other metric. The X axis can
5042 represent different things (time, scenario). It is the HisogramContoller
5043 which understands what the X axis is. Histograms know their HistogramController
5044 but not the reverse.
5046 Often Histograms are sparse (most array elements are zero), so the represnetation
5047 is designed to optimzed for this case (an array of non-zero index, value pairs).
5050 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.#ctor(Microsoft.Diagnostics.Tracing.Stacks.HistogramController)">
5052 Create a new histogram. Every histogram needs a controller but these controllers
5053 can be shared among many histograms.
5056 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5058 Add a sample to this histogram.
5060 <param name="sample">The sample to add.</param>
5062 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddMetric(System.Single,System.Int32)">
5064 Add an amount to a bucket in this histogram.
5066 <param name="metric">The amount to add to the bucket.</param>
5067 <param name="bucket">The bucket to add to.</param>
5069 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddScaled(Microsoft.Diagnostics.Tracing.Stacks.Histogram,System.Double)">
5071 Computes this = this + histogram * weight in place (this is updated).
5074 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Count">
5076 The number of buckets in this histogram.
5079 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Controller">
5081 The <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController"/> that controls this histogram.
5084 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Item(System.Int32)">
5086 Get the metric contained in a bucket.
5088 <param name="index">The bucket to retrieve.</param>
5089 <returns>The metric contained in that bucket.</returns>
5091 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Clone">
5093 Make a copy of this histogram.
5095 <returns>An independent copy of this histogram.</returns>
5097 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.ToString">
5099 A string representation (for debugging)
5103 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.#ctor(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5105 Create a histogram that is a copy of another histogram.
5107 <param name="other">The histogram to copy.</param>
5109 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.GetEnumerator">
5111 Implementes IEnumerable interface
5114 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.System#Collections#IEnumerable#GetEnumerator">
5116 Implementes IEnumerable interface
5119 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.GetEnumerable">
5121 Get an IEnumerable that can be used to enumerate the metrics stored in the buckets of this Histogram.
5124 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.Histogram.m_controller">
5126 The controller for this histogram.
5129 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController">
5131 A Histogram is conceputually an array of floating point values. A Histogram Controller
5132 contains all the information besides the values themselves need to understand the array
5133 of floating point value. There are alot of Histograms, however they all tend to share
5134 the same histogram controller. Thus Histograms know their Histogram controller, but not
5137 Thus HistogramContoller is a abstract class (we have one for time, and one for scenarios).
5139 HistogramControllers are responsible for:
5141 - Adding a sample to the histogram for a node (see <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)"/>)
5142 - Converting a histogram to its string representation see (<see cref="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)"/>)
5143 - Managing the size and scale of histograms and their corresponding display strings
5146 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.Scale">
5148 The scale factor for histograms controlled by this HistogramController.
5151 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.BucketCount">
5153 The number of buckets in each histogram controlled by this HistogramController.
5156 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CharacterCount">
5158 The number of characters in the display string for histograms controlled by this HistogramController.
5159 Buckets are a logial concept, where CharacterCount is a visual concept (how many you can see on the
5163 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.Tree">
5165 The CallTree managed by this HistogramController.
5168 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.InvalidateScale">
5170 Force recalculation of the scale parameter.
5173 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5175 Add a sample to the histogram for a node.
5177 <param name="histogram">The histogram to add this sample to. Must be controlled by this HistogramController.</param>
5178 <param name="sample">The sample to add.</param>
5180 Overriding classes are responsible for extracting the metric, scaling the metric,
5181 determining the appropriate bucket or buckets, and adding the metric to the histogram using <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddMetric(System.Single,System.Int32)"/>.
5184 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5186 Gets human-readable information about a range of histogram characters.
5188 <param name="start">The start character index (inclusive).</param>
5189 <param name="end">The end character index (exclusive).</param>
5190 <param name="histogram">The histogram.</param>
5191 <returns>A string containing information about the contents of that character range.</returns>
5193 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5195 Convert a histogram into its display string.
5197 <param name="histogram">The histogram to convert to a string.</param>
5198 <returns>A string suitable for GUI display.</returns>
5200 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.HistogramString(System.Collections.Generic.IEnumerable{System.Single},System.Int32,System.Double,System.Int32)">
5202 A utility function that turns an array of floats into a ASCII character graph.
5205 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.HistogramString(System.Single[],System.Double,System.Int32)">
5207 A utility function that turns an array of floats into a ASCII character graph.
5210 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree)">
5212 Initialize a new HistogramController.
5214 <param name="tree">The CallTree that this HistogramController controls.</param>
5216 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CalculateScale">
5218 Calculate the scale factor for this histogram.
5220 <returns>The scale factor for this histogram.</returns>
5222 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CalculateAverageScale(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5224 Calculates an average scale factor for a histogram.
5226 <param name="hist">The root histogram to calculate against.</param>
5227 <returns>A scale factor that will normalize the maximum value to 200%.</returns>
5229 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.m_scale">
5231 The scale parameter. 0.0 if uncalculated.
5234 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex">
5236 An enum representing a displayed histogram bucket (one character in a histogram string).
5239 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex.Invalid">
5241 A HistogramCharacterIndex can be used to represent error conditions
5244 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController">
5246 A <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController"/> that groups histograms by scenarios.
5249 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree,System.Int32[],System.Int32,System.String[])">
5251 Initialize a new ScenarioHistogramController.
5253 <param name="tree">The CallTree to manage.</param>
5254 <param name="scenarios">An ordered array of scenario IDs to display.</param>
5255 <param name="totalScenarios">The total number of possible scenarios that can be supplied by the underlying StackSource.
5256 This number might be larger than the highest number in <paramref name="scenarios"/>.</param>
5257 <param name="scenarioNames">The names of the scenarios (for UI use).</param>
5259 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetScenariosForCharacterIndex(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5261 Get a list of scenarios contained in a given bucket.
5263 <param name="bucket">The bucket to look up.</param>
5264 <returns>The scenarios contained in that bucket.</returns>
5266 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetScenariosForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5268 Get a list of scenarios contained in a given bucket range.
5270 <param name="start">The start of the bucket range (inclusive).</param>
5271 <param name="end">The end of the bucket range (exclusive).</param>
5272 <returns>The scenarios contained in that range of buckets.</returns>
5274 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5276 Add a sample to a histogram controlled by this HistogramController.
5278 <param name="histogram">The histogram to add the sample to.</param>
5279 <param name="sample">The sample to add.</param>
5281 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetNameForScenario(System.Int32)">
5283 Get the human-readable name for a scenario.
5285 <param name="scenario">The ID of the scenario to look up.</param>
5286 <returns>The human-readable name for that scenario.</returns>
5288 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5290 Get the human-readable names for all scenarios contained in a range of histogram characters.
5292 <param name="start">The (inclusive) start index of the range.</param>
5293 <param name="end">The (exclusive) end index of the range.</param>
5294 <param name="histogram">The histogram.</param>
5295 <returns>A comma-separated list of scenario names contained in that range.</returns>
5297 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5299 Convert a histogram into a string suitable for UI display.
5301 <param name="histogram">The histogram to convert.</param>
5302 <returns>A string representing the histogram that is suitable for UI display.</returns>
5304 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.CalculateScale">
5306 Calculate the scale factor for all histograms controlled by this ScenarioHistogramController.
5309 In the current implementation, returns a scale that normalizes 100% to half of the maximum value at the root.
5312 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_characterFromScenario">
5314 An array mapping each scenario to a bucket.
5317 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_scenariosFromCharacter">
5319 An array mapping each bucket to a list of scenarios.
5322 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_scenarioNames">
5324 An array mapping each scenario to its name.
5327 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController">
5329 A HistogramController holds all the information to understand the buckets of a histogram
5330 (basically everything except the array of metrics itself. For time this is the
5334 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree,System.Double,System.Double)">
5336 Create a new TimeHistogramController.
5338 <param name="tree">The CallTree to control with this controller.</param>
5339 <param name="start">The start time of the histogram.</param>
5340 <param name="end">The end time of the histogram.</param>
5342 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.Start">
5344 The start time of the histogram.
5347 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.End">
5349 The end time of the histogram.
5352 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetStartTimeForBucket(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5354 Gets the start time for the histogram bucket represented by a character.
5356 <param name="bucket">The index of the character to look up.</param>
5357 <returns>The start time of the bucket represented by the character.</returns>
5359 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.BucketDuration">
5361 The duration of time represented by each bucket.
5364 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.CalculateScale">
5366 Implements HistogramController interface
5369 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5371 Implements HistogramController interface
5374 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5376 Implements HistogramController interface
5379 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5381 Implements HistogramController interface
5384 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard">
5386 This structure provides a clean API for a lightweight recursion stack guard to prevent StackOverflow exceptions
5387 We do ultimately do a stack-overflow to prevent infinite recursion, but it is now under our
5388 control and much larger than you may get on any one thread stack.
5391 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.SingleThreadRecursionLimit">
5393 For recursive methods that need to process deep stacks, this constant defines the limit for recursion within
5394 a single thread. After reaching this limit, methods need to trampoline to a new thread before continuing to
5398 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.MaxResets">
5400 To prevent run-away recursion, fail after this depth (in this case 20*400 = 8K)
5403 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Depth">
5405 The amount of recursion we have currently done.
5408 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Entry">
5410 Gets the recursion guard for entering a recursive method.
5413 This is equivalent to the default <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard"/> value.
5416 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Recurse">
5418 Gets an updated recursion guard for recursing into a method.
5421 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.ResetOnNewThread">
5423 Gets an updated recursion guard for continuing execution on a new thread.
5426 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.RequiresNewThread">
5428 Gets a value indicating whether the current operation has exceeded the recursion depth for a single thread,
5429 and needs to continue executing on a new thread.
5432 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSource">
5434 A stack source is a logically a list of StackSourceSamples. Each sample has a metric and stack (hence the name StackSource)
5435 The stacks are represented as indexes that the StackSourceStacks base class can resolve into frame names and stack chains.
5436 The result is very efficient (no string processing) way of processing the conceptual list of stack samples.
5439 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ProduceSamples(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5441 Call 'callback' on every sample in the StackSource. Will be done linearly and only
5442 one callback will be active simultaneously.
5445 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5447 Call 'callback' on every sample in the StackSource. Will be done linearly and only
5448 one callback will be active simultaneously.
5451 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SamplesImmutable">
5453 If this is overridden to return true, then during the 'Foeach' callback you can save references
5454 to the samples you are given because they will not be overridden by the stack source. If this is
5455 false you must make a copy of the sample if you with to remember it.
5458 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ParallelForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Int32)">
5460 Also called 'callback' on every sample in the StackSource however there may be more than
5461 one callback running simultaneously. Thus 'callback' must be thread-safe and the order
5462 of the samples should not matter. If desiredParallelism == 0 (the default) then the
5463 implementation will choose a good value of parallelism.
5466 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.BaseStackSource">
5468 If this stack source is a source that simply groups another source, get the base source. It will return
5469 itself if there is no base source.
5472 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
5474 If this source supports fetching the samples by index, this is how you get it. Like ForEach the sample that
5475 is returned is not allowed to be modified. Also the returned sample will become invalid the next time GetSampleIndex
5476 is called (we reuse the StackSourceSample on each call)
5479 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SampleIndexLimit">
5481 Returns the limit on stack samples indexes (all index are strictly less than this). Returns 0 if unknown.
5484 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SampleTimeRelativeMSecLimit">
5486 Returns a time which is greater than or equal the timestamp of any sample in the StackSource. Returns 0 if unknown.
5489 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ScenarioCount">
5491 In addition to Time and Metric a sample can have a Scneario number associated with it. ScenarioCount
5492 returns the number of such scnearios. Returning 0 implies no scenario support.
5495 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SamplingRate">
5497 StackSources can optionally support a sampling rate. If the source supports it it will return
5498 non-null for the current sampling rate (1 if it is doing nothing). Sampling is a way of speeding
5499 things up. If you sample at a rate of 10, it means that only one out of every 10 samples is actually
5500 produced by 'ForEach'. Note that it is expected that when the sampling rate is set the
5501 source will correspondingly adjust the CountMultiplier, so that the total will look like no sampling
5505 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.IsGraphSource">
5507 If each 'callstack' is really a node in a graph (like MemoryGraphStackSource)
5508 Then return true. If this returns true 'GetRefs' works.
5511 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.GetReferences(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,Microsoft.Diagnostics.Tracing.Stacks.RefDirection,System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex})">
5513 Only used if IsGraphSource==true. If 'direction' is 'From' Calls 'callback' for node that is referred to FROM nodeIndex.
5514 If 'direction' is 'To' then it calls 'callback' for every node that refers TO nodeIndex. This API returns references
5515 that are not necessarily a tree (they can for DAGs or have cycles).
5518 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.Dump(System.String)">
5520 Dump the stack source to a file as XML. Used for debugging.
5523 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.Dump(System.IO.TextWriter)">
5525 Dump the stack source to a TextWriter as XML. Used for debugging.
5528 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.RefDirection">
5530 RefDirection represents the direction of the references in a heap graph.
5533 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RefDirection.From">
5535 Indicates that you are interested in referneces FROM the node of interest
5538 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RefDirection.To">
5540 Indicates that you are interested in referneces TO the node of interest
5543 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks">
5545 Samples have stacks (lists of frames, each frame contains a name) associated with them. This interface allows you to get
5546 at this information. We don't use normal objects to represent these but rather give each stack (and frame) a unique
5547 (dense) index. This has a number of advantages over using objects to represent the stack.
5549 * Indexes are very serialization friendly, and this data will be presisted. Thus indexes are the natural form for data on disk.
5550 * It allows the data to be read from the serialized format (disk) lazily in a very straightfoward fashion, keeping only the
5551 hottest elements in memory.
5552 * Users of this API can associate additional data with the call stacks or frames trivially and efficiently simply by
5553 having an array indexed by the stack or frame index.
5555 So effectively a StackSourceStacks is simply a set of 'Get' methods that allow you to look up information given a Stack or
5559 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5561 Given a call stack, return the call stack of the caller. This function can return StackSourceCallStackIndex.Discard
5562 which means that this sample should be discarded.
5565 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5567 For efficiency, m_frames are assumed have a integer ID instead of a string name that
5568 is unique to the frame. Note that it is expected that GetFrameIndex(x) == GetFrameId(y)
5569 then GetFrameName(x) == GetFrameName(y). The converse does NOT have to be true (you
5570 can reused the same name for distinct m_frames, however this can be confusing to your
5571 users, so be careful.
5574 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetNumberOfFoldedFrames(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5576 FilterStackSources can combine more than one frame into a given frame. It is useful to know
5577 how many times this happened. Returning 0 means no combining happened. This metric does
5578 not include grouping, but only folding.
5581 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5583 Get the frame name from the FrameIndex. If 'verboseName' is true then full module path is included.
5586 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.CallStackIndexLimit">
5588 all StackSourceCallStackIndex are guaranteed to be less than this. Allocate an array of this size to associate side information
5591 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.CallFrameIndexLimit">
5593 all StackSourceFrameIndex are guaranteed to be less than this. Allocate an array of this size to associate side information
5596 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.OnlyManagedCodeStacks">
5598 True if it only has managed code stacks. Otherwise false.
5601 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.StackDepth(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5603 Computes the depth (number of callers), associated with callStackIndex. This routine is O(n) and mostly useful for debugging.
5606 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,System.Text.StringBuilder)">
5608 Returns an XML string representation of a 'sample'. For debugging.
5611 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5613 Returns an XML string representation of a 'callStackIndex'. For debugging.
5616 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample">
5618 StackSourceSample represents a single sample that has a stack. It has a number of predefined data items associate with it
5619 including a stack, a metric and a time as well as other optional fields. Note that all its properties are read-write.
5620 It is basically a named tuple.
5622 StackSource.ProductSamples push these.
5624 In general StackSourceSample are NOT immutable but expected to be overwritted frequently. Thus you need to copy
5625 the sample if you want to keep a refernece to it.
5628 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.StackIndex">
5630 The Stack associated with the sample
5633 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Metric">
5635 The metric (cost) associated with the sample
5638 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.SampleIndex">
5640 If the source supports fetching samples by some ID, then SampleIndex returns this ID for the sample and
5641 GetSampleByIndex is the API that converts this index into a sample again.
5644 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.TimeRelativeMSec">
5646 The time associated with the sample. (can be left 0)
5649 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Count">
5651 Normally the count of a sample is 1, however when you take a statistical sample, and you also have
5652 other constraints (like you do when you are going a sample of heap memory), you may need to have the
5653 count adjusted to something else.
5656 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Scenario">
5658 A scenario is simply a integer that represents some group the sample belongs to.
5661 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.ToString">
5663 Returns an XML string representing the sample
5666 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5668 Returns an XML string representing the sample, howevever this one can actually expand the stack because it is given the source
5671 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5673 Create a StackSourceSample which is associated with 'source'.
5676 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5678 Copy a StackSourceSample from 'template'
5680 <param name="template"></param>
5682 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex">
5684 Identifies a particular sample from the sample source, it allows 3rd parties to attach additional
5685 information to the sample by creating an array indexed by sampleIndex.
5688 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex.Invalid">
5690 Returned when no appropriate Sample exists.
5693 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex">
5695 An opaque handle that are 1-1 with a complete call stack
5699 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Start">
5701 The first real call stack index (after the pseudo-ones before this)
5704 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid">
5706 Returned when no appropriate CallStack exists. (Top of stack)
5709 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex">
5711 Identifies a particular frame within a stack It represents a particular instruction pointer (IP) location
5712 in the code or a group of such locations.
5715 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Root">
5717 Pseduo-node representing the root of all stacks
5720 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Broken">
5722 Pseduo-frame that represents the caller of all broken stacks.
5725 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Unknown">
5727 Unknown what to do (Must be before the 'special ones below') // Non negative represents normal m_frames (e.g. names of methods)
5730 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Overhead">
5732 Profiling overhead (rundown)
5735 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Start">
5737 The first real call stack index (after the pseudo-ones before this)
5740 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid">
5742 Should not happen (uninitialized) (also means completely folded away)
5745 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Discard">
5747 Sample has been filtered out (useful for filtering stack sources)
5750 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex">
5752 A StackSourceModuleIndex uniquely identifies a module to the stack source.
5755 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex.Start">
5757 Start is where 'ordinary' module indexes start.
5760 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex.Invalid">
5762 Invalid is a module index that is never used and can be used to signal error conditions.
5765 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource">
5767 This stack source takes another and copies out all its events. This allows you to 'replay' the source
5768 efficiently when the original source only does this inefficiently.
5771 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.#ctor">
5773 Create a CopyStackSource that has no samples in it. It can never have samples so it is only useful as a placeholder.
5776 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5778 Create a CopyStackSource that you can add samples which use indexes that 'sourceStacks' can decode. All samples
5779 added to the stack source must only refer to this StackSourceStacks
5782 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5784 Add a sample to stack source. it will clone 'sample' so sample can be overwritten after this method returns.
5785 It is an error if 'sample' does not used the StackSourceStacks passed to the CopyStackSource at construction.
5788 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.Clone(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5790 Create a clone of the given stack soruce.
5792 <param name="source"></param>
5795 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SourceStacks">
5797 Returns the StackSourceStacks that can interpret indexes for this stack source.
5800 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
5802 Implementation of the StackSource interface
5805 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SampleIndexLimit">
5807 Implementation of the StackSource interface
5810 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SampleTimeRelativeMSecLimit">
5812 Implementation of the StackSource interface
5815 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5817 Implementation of the StackSource interface
5820 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SamplesImmutable">
5822 Implementation of the StackSource interface
5825 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5827 Implementation of the StackSource interface
5830 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5832 Implementation of the StackSource interface
5835 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5837 Implementation of the StackSource interface
5840 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.CallStackIndexLimit">
5842 Implementation of the StackSource interface
5845 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.CallFrameIndexLimit">
5847 Implementation of the StackSource interface
5850 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource">
5852 Like CopyStackSource InternStackSource copies the samples. however unlike CopyStackSource
5853 InternStackSource copies all the information in the stacks too (mapping stack indexes to names)
5854 Thus it never refers to the original source again). It also interns the stacks making for
5855 an efficient representation of the data. This is useful when the original source is expensive
5859 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Diff(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5861 Compute the difference between two sources of stacks.
5864 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Diff(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks,Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5866 Compute only the delta of source from the baseline. This variation allows you to specify
5867 the unfiltered names (the sourceStacks and baselineStacks) but otherwise keep the filtering.
5870 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5872 Create a new stack source that can create things out of nothing.
5875 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.#ctor">
5877 Create a new InternStackSource
5880 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Interner">
5882 Returns the Interner, which is the class that holds the name->index mappings that that every
5883 name has a unique index.
5886 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5888 Implementation of the StackSource interface
5891 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5893 Implementation of the StackSource interface
5896 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5898 Implementation of the StackSource interface
5901 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.CallStackIndexLimit">
5903 Implementation of the StackSource interface
5906 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.CallFrameIndexLimit">
5908 Implementation of the StackSource interface
5911 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.InternFullStackFromSource(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks,System.Int32)">
5913 InternFullStackFromSource will take a call stack 'baseCallStackIndex' from the source 'source' and completely copy it into
5914 the intern stack source (interning along the way of course). Logically baseCallStackIndex has NOTHING to do with any of the
5915 call stack indexes in the intern stack source.
5918 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner">
5920 StackSourceInterner is a helper class that knows how to intern module, frame and call stacks.
5923 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.#ctor(System.Int32,System.Int32,System.Int32,Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex)">
5925 Create a new StackSourceInterner. Optionally supply estimates on how many items you need and where the frame, callstack and module indexes start.
5928 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.DoneInterning">
5930 As an optimization, if you are done adding new nodes, then you can call this routine can abandon
5931 some tables only needed during the interning phase.
5934 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackStartIndex">
5936 The CallStackStartIndex value passed to the constructor
5939 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameStartIndex">
5941 The FrameStartIndex value passed to the constructor
5944 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5946 Given a StackSourceCallStackIndex return the StackSourceCallStackIndex of the caller
5949 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5951 Given a StackSourceCallStackIndex return the StackSourceFrameIndex for the Frame associated
5952 with the top call stack
5955 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5957 Get a name from a frame index. If the frame index is a
5960 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetModuleIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
5962 Given a StackSourceFrameIndex return the StackSourceModuleIndex associated with the frame
5964 <param name="frameIndex"></param>
5967 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameNameLookup">
5969 If you intern frames as derived frames, when GetFrameName is called the interner needs to know
5970 how to look up the derived frame from its index. This is the function that is called.
5972 It is called with the frame index and a boolean which indicates whether the full path of the module
5973 should be specified, and returns the frame string.
5976 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.ModuleIntern(System.String)">
5978 Lookup or create a StackSourceModuleIndex for moduleName
5981 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameIntern(System.String,Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex)">
5983 Lookup or create a StackSourceFrameIndex for frame with the name frameName and the module identified by moduleIndex
5986 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameIntern(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.String)">
5988 You can also create frames out of other frames using this method. Given an existing frame, and
5989 a suffix 'frameSuffix'
5992 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackIntern(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5994 Lookup or create a StackSourceCallStackIndex for a call stack with the frame identified frameIndex and caller identified by callerIndex
5997 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameCount">
5999 The current number of unique frames that have been interned so far
6002 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackCount">
6004 The current number of unique call stacks that have been interned so far
6007 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1">
6009 A specialized hash table for interning.
6010 It loosely follows the implementation of <see cref="T:System.Collections.Generic.Dictionary`2"/> but with
6011 several key allowances for known usage patterns:
6012 1. We don't store the hashcode on each entry on the assumption that values can be compared
6013 as quickly as recomputing hash codes. The downside to that is that the hash codes must
6014 be recomputed whenever the map is resized, but that is very cheap.
6015 2. We supply a single <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/> method (instead of a TryGetValue
6016 followed by an Add) so that a hashcode computation is saved in the case of a "miss".
6017 3. We don't support removal. This means we don't need to keep track of a free list and neither
6018 do we need sentinel values. This also allows us to use all 32 bits of the hash-code (where
6019 <see cref="T:System.Collections.Generic.Dictionary`2"/> uses only 31 bits, reserving -1 to indicate a freed
6020 entry. The only sentinel value is in the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array to indicate a free
6022 4. We return an index (of the interned item) to the caller which can be used for constant-time
6023 look-up in the table via <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)"/>.
6024 5. To free up memory, the caller can call <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/>. The entries themselves
6025 are stored separately from the indexing parts of the table so that the latter can be dropped
6029 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.#ctor(System.Int32)">
6031 Construct the intern map
6033 <param name="initialCapacity">The estimated capacity of the map.</param>
6035 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Count">
6037 Count of interned values.
6040 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)">
6042 Access an element by index.
6044 <param name="index">The zero-based index of the desired entry.</param>
6045 <returns>The entry at the requested index.</returns>
6046 <remarks>For performance, in Release mode we do no range checking on <paramref name="index"/>, so it is possible to
6047 access an entry beyond <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Count"/> but prior to the maximum capacity of the array.</remarks>
6048 <exception cref="T:System.IndexOutOfRangeException"><paramref name="index"/> was less than zero or greater than the capacity.</exception>
6050 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)">
6052 Intern a value. If the same value has been seen before
6053 then this returns the index of the previously seen entry. If not, a new entry
6054 is added and this returns the index of the newly added entry.
6056 <param name="value">The candidate value.</param>
6057 <returns>The index of the interned entry.</returns>
6058 <exception cref="T:System.NullReferenceException">This routine was called after calling <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/>.</exception>
6060 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning">
6062 As an optimization, if you are done calling <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/>, then you can call this
6063 to free up some memory.
6065 <remarks>After calling this, you can still call <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)"/>. However, if you try to
6066 call <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/> you will get a <see cref="T:System.NullReferenceException"/>.</remarks>
6068 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket">
6070 Elements representing the structure of the hash table. The structure is
6071 a collection of singly linked lists, one list per 'bucket' where a
6072 bucket number is selected by taking the hash code of an incoming item
6073 and mapping it onto the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array (see <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.BucketNumberFromValue(`0)"/>).
6076 Caution: For a given <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket"/>, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head"/> and
6077 <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> are UNRELATED to each other. Logically, you can
6078 think of <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> as being part of a value in the
6079 <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._entries"/> table. (We don't actually do that in order to
6080 support <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/> efficiently.)
6081 To find the next element in the linked list, you should NOT simply
6082 look at <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/>. Instead, you should first look up the
6083 <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket"/> in the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array indexed by
6084 <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head"/> and look at the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> field of that.
6087 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head">
6089 Index into the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._entries"/> array of the head item in the linked list or
6090 -1 to indicate an empty bucket.
6093 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next">
6095 Index into the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array of the next item in the linked list or
6096 -1 to indicate that this is the last item.
6099 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.GetSortedSamplesPerThread(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
6101 we want to identify the thread for every sample to prevent from
6102 overlaping of samples for the concurrent code so we group the samples by Threads
6103 this method also sorts the samples by relative time (ascending)
6106 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.WalkTheStackAndExpandSamples(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.Collections.Generic.IEnumerable{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample},System.Collections.Generic.Dictionary{System.String,System.Int32},System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.FrameInfo})">
6108 all the samples that we have are leafs (last sample in the call stack)
6109 this method expands those samples to full information
6110 it walks the stack up to the begining and adds a sample for every method on the stack
6111 it's required to build full information
6114 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.GetAggregatedOrderedProfileEvents(System.Collections.Generic.IReadOnlyDictionary{System.Int32,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample}})">
6116 this method aggregates all the singular samples to continuous events
6117 example: samples for Main taken at time 0.1 0.2 0.3 0.4 0.5
6118 are gonna be translated to Main start at 0.1 stop at 0.5
6121 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.AreNotContinuous(Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample)">
6123 this method checks if both samples do NOT belong to the same profile event
6126 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.AddEvents(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent},Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,System.Int32)">
6128 this method adds a new profile event for provided samples
6129 it also make sure that a profile event does not open and close at the same time (would be ignored by SpeedScope)
6132 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.OrderForExport(System.Collections.Generic.IEnumerable{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent})">
6134 this method orders the profile events in the order required by SpeedScope
6135 it's just the order of drawing the time graph
6138 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource">
6140 TraceEventStackSource is an implementation of a StackSource for ETW information (TraceLog)
6141 It takes a TraceEvents (which is a list of TraceEvents you get get from a TraceLog) and
6142 implements that StackSource protocol for them. (thus any code needing a StackSource
6143 can then work on it.
6145 The key to the implementation is how StackSourceFrameIndex and StackSourceCallStackIndex
6146 (part of the StackSource protocol) are mapped to the Indexes in TraceLog. Here is
6149 TraceEventStackSource create the following meaning for the StackSourceCallStackIndex
6151 * The call stacks ID consists of the following ranges concatenated together.
6152 * a small set of fixed Pseudo stacks (Start marks the end of these)
6156 * BrokenStacks (One per thread)
6157 * Stacks for CPU samples without explicit stacks (we make 1 element stacks out of them)
6159 TraceEventStackSource create the following meaning for the StackSourceFrameIndex
6161 The frame ID consists of the following ranges concatenated together.
6162 * a small fixed number of Pseudo frame (Broken, and Unknown)
6163 * MaxCodeAddressIndex - something with a TraceCodeAddress.
6164 * ThreadIndex - ETW stacks don't have a thread or process node, so we add them.
6168 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
6170 Creates a new TraceEventStackSource given a list of events 'events' from a TraceLog
6172 <param name="events"></param>
6174 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.TraceLog">
6176 Returns the TraceLog file that is associated with this stack source.
6179 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ShowUnknownAddresses">
6181 Normally addresses without symbolic names are listed as ?, however sometimes it is useful
6182 to see the actual address as a hexadecimal number. Setting this will do that.
6185 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ShowOptimizationTiers">
6187 Displays the optimization tier of each code version executed for the method.
6190 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.LookupWarmSymbols(System.Int32,Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.Predicate{Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile})">
6192 Looks up symbols for all modules that have an inclusive count >= minCount.
6193 stackSource, if given, can be used to be the filter. If null, 'this' is used.
6194 If stackSource is given, it needs to use the same indexes for frames as 'this'.
6195 shouldLoadSymbols, if given, can be used to filter the modules.
6198 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameCodeAddress(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
6200 Given a frame index, return the corresponding code address for it. This is useful for looking up line number information.
6203 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
6205 Implementation of StackSource protocol.
6208 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.SampleTimeRelativeMSecLimit">
6210 Implementation of StackSource protocol.
6213 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6215 Implementation of StackSource protocol.
6218 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6220 Implementation of StackSource protocol.
6223 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetSourceLine(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Symbols.SymbolReader)">
6225 Implementation of StackSource protocol.
6228 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
6230 Implementation of StackSource protocol.
6233 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.CallStackIndexLimit">
6235 Implementation of StackSource protocol.
6238 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.CallFrameIndexLimit">
6240 Implementation of StackSource protocol.
6243 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetModulesForStack(Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ModuleList[],Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6245 Returns a list of modules for the stack 'stackIdx'. It also updates the interning table stackModuleLists, so
6246 that the entry cooresponding to stackIdx remembers the answer. This can speed up processing alot since many
6247 stacks have the same prefixes to root.
6250 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ModuleList">
6252 A ModuleList is a linked list of modules. It is only used in GetModulesForStack and LookupWarmSymbols
6255 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.m_pseudoStacksTable">
6257 This maps pseudo-stacks to their index (thus it is the inverse of m_pseudoStack;
6260 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetPseudoStack(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex,Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
6262 Given a thread and a call stack that does not have a stack, make up a pseudo stack for it consisting of the code address,
6263 the broken node, the thread and process. Will return -1 if it can't allocate another Pseudo-stack.
6266 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource">
6268 Like a TraceEventStackSource a MutableTraceEventStackSource allows you incorporate the stacks associated with
6269 a TraceEvent as a sample in the StackSource. However in addition it allows you to create new frames for these
6270 stacks on the fly as well as add samples that did not exist in the original TraceEvent stream. This gives you
6271 a lot of flexibility to add additional data to the original stream of TraceEvents.
6273 Like TraceEventStackSource MutableTraceEventStackSource supports the GetFrameCodeAddress() method that allows
6274 you to map from the StackSourceFrameIndex back its TraceLog code address (that lets you get at the source code and
6275 line number for that frame).
6278 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
6280 Create a new MutableTraceEventStackSource that can represent stacks comming from any events in the given TraceLog with a stack.
6281 You use the 'AddSample' and 'DoneAddingSamples' to specify exactly which stacks you want in your source.
6284 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
6286 After creating a MultableTraceEventStackSource, you add the samples you want using this AddSample API (you can reuse 'sample'
6287 used as an argument to this routine. It makes a copy. The samples do NOT need to be added in time order (the MultableTraceEventStackSource
6288 will sort them). When you done DoneAddingSamples must be called before using the
6289 the MutableTraceEventStackSource as a stack source.
6292 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.DoneAddingSamples">
6294 After calling 'AddSample' to add the samples that should belong to the source, DoneAddingSamples() should be called to
6295 to complete the construction of the stack source. Only then can the reading API associated with the stack source be called.
6298 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.Interner">
6300 The Interner is the class that allows you to make new indexes out of strings and other bits.
6303 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackForProcess(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
6305 Returns a StackSourceCallStackIndex representing just one entry that represents the process 'process'
6308 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackForThread(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
6310 Returns a StackSourceCallStackIndex representing just two entries that represent 'thread' which has a parent of its process.
6313 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackThread(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
6315 Returns a StackSourceCallStackIndex representing the call stack from the TraceLog represented by the CallStackIndex 'callStackIndex'.
6316 If that stack is invalid, use 'thread' to at least return a call stack for the thread.
6319 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.TraceEvent)">
6321 Returns a StackSourceCallStackIndex representing the call stack from the TraceLog represented by the CallStackIndex 'callStackIndex'.
6322 Use the TraceEvent 'data' to find the stack if callStackIndex is invalid.
6323 TODO data should be removed (or callstack derived from it)
6326 <member name="T:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap">
6328 A very simple IDictionary-like interface for remembering values in GetCallStack()
6331 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap.Get(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
6333 Fetches an value given a key
6336 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap.Put(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6338 Sets a key-value pair
6341 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap)">
6343 Find the StackSourceCallStackIndex for the TraceEvent call stack index 'callStackIndex' which has a top of its
6344 stack (above the stack, where the thread and process would normally go) as 'top'. If callStackMap is non-null
6345 it is used as an interning table for CallStackIndex -> StackSourceCallStackIndex. This can speed up the
6346 transformation dramatically. It will still work if it is null.
6350 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
6352 Create a frame name from a TraceLog code address.
6355 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6357 Implementation of StackSource protocol.
6360 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6362 Implementation of StackSource protocol.
6365 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetModuleIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
6367 Implementation of StackSource protocol.
6370 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
6372 Implementation of StackSource protocol.
6375 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
6377 Implementation of StackSource protocol.
6380 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SampleIndexLimit">
6382 Implementation of StackSource protocol.
6385 <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
6387 Implementation of StackSource protocol.
6390 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SamplesImmutable">
6392 Implementation of StackSource protocol.
6395 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallFrameIndexLimit">
6397 Implementation of StackSource protocol.
6400 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackIndexLimit">
6402 Implementation of StackSource protocol.
6405 <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SampleTimeRelativeMSecLimit">
6407 Implementation of StackSource protocol.
6410 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.m_Interner">
6415 <member name="F:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.m_emptyModuleIdx">
6420 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventSource">
6422 TraceEventSource is an abstract base class that represents the output of a ETW session (e.g. a ETL file
6423 or ETLX file or a real time stream). This base class is NOT responsible for actually processing
6424 the events, but contains methods for properties associated with the session
6425 like its start and end time, filename, and characteristics of the machine it was collected on.
6426 <para>This class has two main subclasses:</para>
6427 <para>* <see cref="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcher"/> which implements a 'push' (callback) model and is the only mode for ETL files.
6428 ETWTraceEventSource is the most interesting subclass of TraceEventDispatcher.</para>
6429 <para>* see TraceLog which implements both a 'push' (callback) as well as pull (foreach) model but only works on ETLX files.</para>
6430 <para>This is the end.</para>
6431 <para>The normal user pattern is to create a TraceEventSource, create TraceEventParsers attached to the TraceEventSource, and then subscribe
6432 event callbacks using the TraceEventParsers</para>
6435 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Clr">
6437 For convenience, we provide a property returns a ClrTraceEventParser that knows
6438 how to parse all the Common Language Runtime (CLR .NET) events into callbacks.
6441 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Kernel">
6443 For convenience, we provide a property returns a KernelTraceEventParser that knows
6444 how to parse all the Kernel events into callbacks.
6447 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Dynamic">
6449 For convenience, we provide a property returns a DynamicTraceEventParser that knows
6450 how to parse all event providers that dynamically log their schemas into the event streams.
6451 In particular, it knows how to parse any events from a System.Diagnostics.Tracing.EventSources.
6453 Note that the DynamicTraceEventParser has subsumed the functionality of RegisteredTraceEventParser
6454 so any registered providers are also looked up here.
6457 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Registered">
6459 For convenience, we provide a property returns a RegisteredTraceEventParser that knows
6460 how to parse all providers that are registered with the operating system.
6462 Because the DynamicTraceEventParser has will parse all providers that that RegisteredTraceEventParser
6463 will parse, this function is obsolete, you should use Dynamic instead.
6466 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionStartTime">
6468 The time when session started logging.
6471 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionEndTime">
6473 The time that the session stopped logging.
6476 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionEndTimeRelativeMSec">
6478 The Session End time expressed as milliseconds from the start of the session
6481 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionDuration">
6483 The difference between SessionEndTime and SessionStartTime;
6486 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Size">
6488 The size of the trace, if it is known. Will return 0 if it is not known.
6491 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.PointerSize">
6493 Returns the size of a pointer on the machine where events were collected (4 for 32 bit or 8 for 64 bit)
6496 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.EventsLost">
6498 The number of events that were dropped (e.g. because the incoming event rate was too fast)
6501 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.NumberOfProcessors">
6503 The number of processors on the machine doing the logging.
6506 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.CpuSpeedMHz">
6508 Cpu speed of the machine doing the logging.
6511 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.OSVersion">
6513 The version of the windows operating system on the machine doing the logging.
6516 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.IsRealTime">
6518 Returns true if this is a real time session.
6521 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.DataLifetimeMsec">
6523 Time based threshold for how long data should be retained
6524 by accumulates that are processing this TraceEventSource.
6525 A value of 0, the default, indicates an infinite accumulation.
6528 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.DataLifetimeEnabled">
6530 Check if a DataLifetime model is enabled
6532 <returns>True - lifetime tracking is enabled</returns>
6533 <returns>False - lifetime tracking is not enabled</returns>
6535 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.Dispose">
6537 Closes any files and cleans up any resources associated with this TraceEventSource
6540 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.UserData">
6542 TraceEventSource supports attaching arbitrary user data to the source. This property returns a key-value bag of these attached values.
6544 One convention that has been established is that TraceEventParsers that need additional state to parse their events should
6545 store them in UserData under the key 'parsers\(ParserName)'
6549 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.Dispose(System.Boolean)">
6554 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCFreq">
6556 This is the high frequency tick clock on the processor (what QueryPerformanceCounter uses).
6560 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCTimeToRelMSec(System.Int64)">
6562 Converts the Query Performance Counter (QPC) ticks to a number of milliseconds from the start of the trace.
6565 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.RelativeMSecToQPC(System.Double)">
6567 Converts a Relative MSec time to the Query Performance Counter (QPC) ticks
6570 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.UTCDateTimeToQPC(System.DateTime)">
6572 Converts a DateTime to the Query Performance Counter (QPC) ticks
6575 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCTimeToDateTimeUTC(System.Int64)">
6577 Converts the Query Performance Counter (QPC) ticks to a DateTime
6580 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.LastChanceGetThreadID(Microsoft.Diagnostics.Tracing.TraceEvent)">
6582 Some events (like HardFault) do not have a thread ID or a process ID, but they MIGHT have a Stack
6583 If they do try to get the ThreadID for the event from that. Return -1 if not successful.
6584 This is intended to be overridden by the TraceLog class that has this additional information.
6587 <member name="T:Microsoft.Diagnostics.Tracing.TraceEvent">
6589 TraceEvent an abstract class represents the data from one event in the stream of events in a TraceEventSource.
6590 The TraceEvent class has all the properties of an event that are common to all ETW events, including TimeStamp
6591 ProviderGuid, ProcessID etc. Subclasses of TraceEvent then extend this abstract class to include properties
6592 specific to a particular payload.
6594 An important architectural point is that TraceEvent classes are aggressively reused by default. The TraceEvent that is
6595 passed to any TraceEventParser callback or in a foreach is ONLY valid for the duration for that callback (or one
6596 iteration of the foreach). If you need save a copy of the event data, you must call the Clone() method to make
6597 a copy. The IObservable interfaces (TraceEventParser.Observe* methods) however implicitly call Clone() so you
6598 do not have to call Clone() when processing with IObservables (but these are slower).
6602 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProviderGuid">
6604 The GUID that uniquely identifies the Provider for this event. This can return Guid.Empty for classic (Pre-VISTA) ETW providers.
6607 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TaskGuid">
6609 Unique GUID for Pre-VISTA ETW providers.
6612 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProviderName">
6614 The name of the provider associated with the event. It may be of the form Provider(GUID) or UnknownProvider in some cases but is never null.
6617 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventName">
6619 A name for the event. This is simply the concatenation of the task and opcode names (separated by a /). If the
6620 event has no opcode, then the event name is just the task name.
6623 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ID">
6625 Returns the provider-specific integer value that uniquely identifies event within the scope of
6626 the provider. (Returns 0 for classic (Pre-VISTA) ETW providers).
6629 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Task">
6631 Events for a given provider can be given a group identifier (integer) called a Task that indicates the
6632 broad area within the provider that the event pertains to (for example the Kernel provider has
6633 Tasks for Process, Threads, etc).
6636 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TaskName">
6638 The human readable name for the event's task (group of related events) (eg. process, thread,
6639 image, GC, ...). May return a string Task(GUID) or Task(TASK_NUM) if no good symbolic name is
6640 available. It never returns null.
6643 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Opcode">
6645 An opcode is a numeric identifier (integer) that identifies the particular event within the group of events
6646 identified by the event's task. Often events have opcode 'Info' (0), which is the default. This value
6647 is interpreted as having no-opcode (the task is sufficient to identify the event).
6649 Generally the most useful opcodes are the Start and Stop opcodes which are used to indicate the beginning and the
6650 end of a interval of time. Many tools will match up start and stop opcodes automatically and compute durations.
6654 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.OpcodeName">
6656 Returns the human-readable string name for the Opcode property.
6659 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Level">
6661 The verbosity of the event (Fatal, Error, ..., Info, Verbose)
6664 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Version">
6666 The version number for this event. The only compatible change to an event is to add new properties at the end.
6667 When this is done the version numbers is incremented.
6670 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Keywords">
6672 ETW Event providers can specify a 64 bit bitfield called 'keywords' that define provider-specific groups of
6673 events which can be enabled and disabled independently.
6674 Each event is given a keywords mask that identifies which groups the event belongs to. This property returns this mask.
6677 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Channel">
6679 A Channel is a identifier (integer) that defines an 'audience' for the event (admin, operational, ...).
6680 Channels are only used for Windows Event Log integration.
6683 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStamp">
6685 The time of the event. You may find TimeStampRelativeMSec more convenient.
6688 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStampRelativeMSec">
6690 Returns a double representing the number of milliseconds since the beginning of the session.
6693 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ThreadID">
6695 The thread ID for the thread that logged the event
6696 <para>This field may return -1 for some events when the thread ID is not known.</para>
6699 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessID">
6701 The process ID of the process which logged the event.
6702 <para>This field may return -1 for some events when the process ID is not known.</para>
6705 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessName">
6707 Returns a short name for the process. This the image file name (without the path or extension),
6708 or if that is not present, then the string 'Process(XXXX)'
6711 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessorNumber">
6713 The processor Number (from 0 to TraceEventSource.NumberOfProcessors) that logged this event.
6717 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.PointerSize">
6719 Get the size of a pointer associated with process that logged the event (thus it is 4 for a 32 bit process).
6722 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ActivityID">
6724 Conceptually every ETW event can be given a ActivityID (GUID) that uniquely identifies the logical
6725 work being carried out (the activity). This property returns this GUID. Can return Guid.Empty
6726 if the thread logging the event has no activity ID associated with it.
6729 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.RelatedActivityID">
6731 ETW supports the ability to take events with another GUID called the related activity that is either
6732 causes or is caused by the current activity. This property returns that GUID (or Guid.Empty if the
6733 event has not related activity.
6736 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.FormattedMessage">
6738 Event Providers can define a 'message' for each event that are meant for human consumption.
6739 FormattedMessage returns this string with the values of the payload filled in at the appropriate places.
6740 <para>It will return null if the event provider did not define a 'message' for this event</para>
6743 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFormattedMessage(System.IFormatProvider)">
6745 Creates and returns the value of the 'message' for the event with payload values substituted.
6746 Payload values are formatted using the given formatProvider.
6749 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventIndex">
6751 An EventIndex is a integer that is guaranteed to be unique for this event over the entire log. Its
6752 primary purpose is to act as a key that allows side tables to be built up that allow value added
6753 processing to 'attach' additional data to this particular event unambiguously.
6754 <para>This property is only set for ETLX file. For ETL or real time streams it returns 0</para>
6755 <para>EventIndex is currently a 4 byte quantity. This does limit this property to 4Gig of events</para>
6758 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Source">
6760 The TraceEventSource associated with this event.
6763 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.IsClassicProvider">
6765 Returns true if this event is from a Classic (Pre-VISTA) provider
6768 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadNames">
6770 Returns the names of all the manifest declared field names for the event. May be empty if the manifest is not available.
6773 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadValue(System.Int32)">
6775 Given an index from 0 to PayloadNames.Length-1, return the value for that payload item as an object (boxed if necessary).
6778 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadString(System.Int32,System.IFormatProvider)">
6780 PayloadString is like PayloadValue(index).ToString(), however it can do a better job in some cases. In particular
6781 if the payload is a enumeration or a bitfield and the manifest defined the enumeration values, then it will print the string name
6782 of the enumeration value instead of the integer value.
6785 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadIndex(System.String)">
6787 Returns the index in 'PayloadNames for field 'propertyName'. Returns something less than 0 if not found.
6790 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadByName(System.String)">
6792 PayloadByName fetches the value of a payload property by the name of the property.
6793 <para>It will return null if propertyName is not found.</para>
6794 <para>This method is not intended to be used in performance critical code.</para>
6797 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadStringByName(System.String,System.IFormatProvider)">
6799 PayloadStringByName functions the same as PayloadByName, but uses PayloadString instead of PayloadValue.
6800 <para>It will return null if propertyName is not found.</para>
6801 <para>This method is not intended to be used in performance critical code.</para>
6804 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventDataLength">
6806 The size of the event-specific data payload. (see EventData)
6807 <para>Normally this property is not used because some TraceEventParser has built a subclass of
6808 TraceEvent that parses the payload</para>
6811 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventData">
6813 Returns an array of bytes representing the event-specific payload associated with the event.
6814 <para>Normally this method is not used because some TraceEventParser has built a subclass of
6815 TraceEvent that parses the payload</para>
6818 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventData(System.Byte[],System.Int32,System.Int32,System.Int32)">
6820 Gets the event data and puts it in 'targetBuffer' at 'targetStartIndex' and returns the resulting buffer.
6821 If 'targetBuffer is null, it will allocate a buffer of the correct size.
6822 <para>Normally this method is not used because some TraceEventParser has built a subclass of
6823 TraceEvent that parses the payload</para>
6826 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Clone">
6828 The events passed to the callback functions only last as long as the callback, so if you need to
6829 keep the information around after that you need to copy it. This method makes that copy.
6830 <para>This method is more expensive than copy out all the event data from the TraceEvent instance
6831 to a type of your construction.</para>
6834 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToString">
6836 Pretty print the event. It uses XML syntax..
6839 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToString(System.IFormatProvider)">
6841 Pretty print the event using XML syntax, formatting data using the supplied IFormatProvider
6844 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToXml(System.Text.StringBuilder)">
6846 Write an XML representation to the stringBuilder sb and return it.
6849 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToXml(System.Text.StringBuilder,System.IFormatProvider)">
6851 Writes an XML representation of the event to a StringBuilder sb, formatting data using the passed format provider.
6852 Returns the StringBuilder.
6855 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Dump(System.Boolean,System.Boolean)">
6857 Dumps a very verbose description of the event, including a dump of they payload bytes. It is in
6858 XML format. This is very useful in debugging (put it in a watch window) when parsers are not
6859 interpreting payloads properly.
6862 <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.EventTypeUserData">
6864 EventTypeUserData is a field users get to use to attach their own data on a per-event-type basis.
6867 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.DataStart">
6869 Returns the raw IntPtr pointer to the data blob associated with the event. This is the way the
6870 subclasses of TraceEvent get at the data to display it in a efficient (but unsafe) manner.
6873 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.#ctor(System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
6875 Create a template with the given event meta-data. Used by TraceParserGen.
6878 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUTF8String(System.Int32)">
6880 Skip UTF8 string starting at 'offset' bytes into the payload blob.
6882 <returns>Offset just after the string</returns>
6884 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUnicodeString(System.Int32)">
6886 Skip Unicode string starting at 'offset' bytes into the payload blob.
6888 <returns>Offset just after the string</returns>
6890 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUnicodeString(System.Int32,System.Int32)">
6892 Skip 'stringCount' Unicode strings starting at 'offset' bytes into the payload blob.
6894 <returns>Offset just after the last string</returns>
6896 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipSID(System.Int32)">
6898 Skip a Security ID (SID) starting at 'offset' bytes into the payload blob.
6900 <returns>Offset just after the Security ID</returns>
6902 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.HostOffset(System.Int32,System.Int32)">
6904 Trivial helper that allows you to get the Offset of a field independent of 32 vs 64 bit pointer size.
6906 <param name="offset">The Offset as it would be on a 32 bit system</param>
6907 <param name="numPointers">The number of pointer-sized fields that came before this field.
6910 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.HostSizePtr(System.Int32)">
6912 Computes the size of 'numPointers' pointers on the machine where the event was collected.
6915 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetUTF8StringAt(System.Int32)">
6917 Given an Offset to a null terminated ASCII string in an event blob, return the string that is
6921 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFixedAnsiStringAt(System.Int32,System.Int32)">
6923 Returns the string represented by a fixed length ASCII string starting at 'offset' of length 'charCount'
6926 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFixedUnicodeStringAt(System.Int32,System.Int32)">
6928 Given an Offset to a fixed sized string at 'offset', whose buffer size is 'charCount'
6929 Returns the string value. A null in the string will terminate the string before the
6933 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetIPAddrV6At(System.Int32)">
6935 Returns the encoding of a Version 6 IP address that has been serialized at 'offset' in the payload bytes.
6938 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetGuidAt(System.Int32)">
6940 Returns the GUID serialized at 'offset' in the payload bytes.
6943 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetDateTimeAt(System.Int32)">
6945 Get the DateTime that serialized (as a windows FILETIME) at 'offset' in the payload bytes.
6948 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetUnicodeStringAt(System.Int32)">
6950 Given an Offset to a null terminated Unicode string in an payload bytes, return the string that is
6954 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetByteArrayAt(System.Int32,System.Int32)">
6956 Give an offset to a byte array of size 'size' in the payload bytes, return a byte[] that contains
6960 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetByteAt(System.Int32)">
6962 Returns a byte value that was serialized at 'offset' in the payload bytes
6965 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt16At(System.Int32)">
6967 Returns a short value that was serialized at 'offset' in the payload bytes
6970 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt32At(System.Int32)">
6972 Returns an int value that was serialized at 'offset' in the payload bytes
6975 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt64At(System.Int32)">
6977 Returns a long value that was serialized at 'offset' in the payload bytes
6980 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetIntPtrAt(System.Int32)">
6982 Get something that is machine word sized for the provider that collected the data, but is an
6983 integer (and not an address)
6986 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetAddressAt(System.Int32)">
6988 Gets something that is pointer sized for the provider that collected the data.
6991 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetSingleAt(System.Int32)">
6993 Returns an int float (single) that was serialized at 'offset' in the payload bytes
6996 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetDoubleAt(System.Int32)">
6998 Returns an int double precision floating point value that was serialized at 'offset' in the payload bytes
7001 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.String)">
7003 Write the XML attribute 'attribName' with value 'value' to the string builder
7006 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Int32)">
7008 Write the XML attribute 'attribName' with value 'value' to the string builder
7011 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Int64)">
7013 Write the XML attribute 'attribName' with value 'value' to the string builder
7016 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.UInt64)">
7018 Write the XML attribute 'attribName' with value 'value' to the string builder
7021 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.Int64)">
7023 Write the XML attribute 'attribName' with value 'value' to the string builder
7026 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.UInt32)">
7028 Write the XML attribute 'attribName' with value 'value' to the string builder
7031 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.Int32)">
7033 Write the XML attribute 'attribName' with value 'value' to the string builder
7036 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Object)">
7038 Write the XML attribute 'attribName' with value 'value' to the string builder
7041 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Prefix(System.Text.StringBuilder)">
7043 Prints a standard prefix for a event (includes the time of the event, the process ID and the
7047 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ThreadIDforStacks">
7049 Because we want the ThreadID to be the ID of the CREATED thread, and the stack
7050 associated with the event is the parentThreadID
7053 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Target">
7055 Returns (or sets) the delegate associated with this event.
7058 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SetState(System.Object)">
7060 If this TraceEvent belongs to a parser that needs state, then this callback will set the state.
7061 Parsers with state are reasonably rare, the main examples are KernelTraceEventParser and ClrTraceEventParser.
7064 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStampQPC">
7066 Returns the Timestamp for the event using Query Performance Counter (QPC) ticks.
7067 The start time for the QPC tick counter is arbitrary and the units also vary.
7070 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
7072 A standard way for events to are that certain addresses are addresses in code and ideally have
7073 symbolic information associated with them. Returns true if successful.
7076 <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.IsEventWriteString">
7078 Was this written with the windows EventWriteString API? (see also EventDataAsString)
7081 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Compare(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.EventIndex)">
7083 Used for binary searching of event IDs. Abstracts the size (currently a int, could go to long)
7086 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Matches(Microsoft.Diagnostics.Tracing.TraceEvent)">
7088 Returns true if the two traceEvents have the same identity.
7091 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Finalize">
7093 Normally TraceEvent does not have unmanaged data, but if you call 'Clone' it will.
7096 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.DumpArray(System.Byte[],System.Int32)">
7098 For debugging. dumps an array. If you specify a size of 0 (the default) it dumps the whole array.
7101 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventDataAsString">
7103 If the event data looks like a unicode string, then return it. This is heuristic. (See also IsEventWriteString)
7107 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Dispatch">
7109 Each TraceEvent items knows where it should Dispatch to.
7110 ETWTraceEventSource.Dispatch calls this function to go to the right placed. By default we
7111 do nothing. Typically a subclass just dispatches to another callback that passes itself to a
7112 type-specific event callback.
7115 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Validate">
7117 This is a DEBUG-ONLY routine that allows a routine to do consistency checking in a debug build.
7120 <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.DebugValidate">
7122 Validate that the events is not trash.
7125 <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.next">
7127 TraceEvent knows where to dispatch to. To support many subscriptions to the same event we chain
7131 <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.payloadNames">
7133 The array of names for each property in the payload (in order).
7136 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventID">
7138 Individual event providers can supply many different types of events. These are distinguished from each
7139 other by a TraceEventID, which is just a 16 bit number. Its meaning is provider-specific.
7142 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventID.Illegal">
7144 Illegal is a EventID that is not used by a normal event.
7147 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventChannel">
7149 Providers can define different audiences or Channels for an event (eg Admin, Developer ...).
7150 It is only used for Windows Event log support.
7153 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventChannel.Default">
7155 The default channel.
7158 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventOpcode">
7160 There are certain classes of events (like start and stop) which are common across a broad variety of
7161 event providers for which it is useful to treat uniformly (for example, determining the elapsed time
7162 between a start and stop event). To facilitate this, event can have opcode which defines these
7163 common operations. Below are the standard ones but providers can define additional ones.
7166 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Info">
7168 Generic opcode that does not have specific semantics associated with it.
7171 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Start">
7173 The entity (process, thread, ...) is starting
7176 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Stop">
7178 The entity (process, thread, ...) is stoping (ending)
7181 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.DataCollectionStart">
7183 The entity (process, thread, ...) did not terminate before data collection ended, so indicate
7184 this at data collection termination time.
7187 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.DataCollectionStop">
7189 The entity (process, thread, ...) did not terminate before data collection ended, so indicate
7190 this at data collection termination time. This is mostly for 'flight recorder' scenarios where
7191 you only have the 'tail' of the data and would like to know about everything that existed.
7194 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Extension">
7199 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Reply">
7204 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Resume">
7209 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Suspend">
7214 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Transfer">
7219 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventLevel">
7221 Indicates to a provider whether verbose events should be logged.
7224 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Always">
7226 Always log the event (It also can mean that the provider decides the verbosity) You probably should not use it....
7229 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Critical">
7231 Events that indicate critical conditions
7234 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Error">
7236 Events that indicate error conditions
7239 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Warning">
7241 Events that indicate warning conditions
7244 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Informational">
7246 Events that indicate information
7249 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Verbose">
7251 Events that verbose information
7254 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventKeyword">
7256 ETW defines the concept of a Keyword, which is a 64 bit bitfield. Each bit in the bitfield
7257 represents some provider defined 'area' that is useful for filtering. When processing the events, it
7258 is then possible to filter based on whether various bits in the bitfield are set. There are some
7259 standard keywords, but most are provider specific.
7262 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventKeyword.None">
7264 No event groups (keywords) selected
7267 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventKeyword.All">
7269 All event groups (keywords) selected
7272 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventTask">
7274 Tasks are groups of related events for a given provider (for example Process, or Thread, Kernel Provider).
7275 They are defined by the provider.
7278 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventTask.Default">
7280 If you don't explicitly choose a task you get the default
7283 <member name="T:Microsoft.Diagnostics.Tracing.EventIndex">
7285 EventIdex is a unsigned integer that is unique to a particular event. EventIndex is guaranteed to be
7286 unique over the whole log. It is only used by ETLX files.
7288 Currently the event ID simply the index in the log file of the event. We don't however guarantee ordering.
7289 In the future we may add new events to the log and given them IDs 'at the end' even if the events are not
7290 at the end chronologically.
7293 EventIndex is a 32 bit number limits it to 4Gig events in an ETLX file.
7297 <member name="F:Microsoft.Diagnostics.Tracing.EventIndex.Invalid">
7299 Invalid is an EventIndex that will not be used by a normal event.
7302 <member name="T:Microsoft.Diagnostics.Tracing.ITraceParserServices">
7304 TraceEventSource has two roles. The first is the obvious one of providing some properties
7305 like 'SessionStartTime' for clients. The other role is provide an interface for TraceEventParsers
7306 to 'hook' to so that events can be decoded. ITraceParserServices is the API service for this
7307 second role. It provides the methods that parsers register templates for subclasses of
7308 the TraceEvent class that know how to parse particular events.
7311 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterEventTemplate(Microsoft.Diagnostics.Tracing.TraceEvent)">
7313 RegisterEventTemplate is the mechanism a particular event payload description 'template'
7314 (a subclass of TraceEvent) is injected into the event processing stream. Once registered, an
7315 event is 'parsed' simply by setting the 'rawData' field in the event. It is up to the template
7316 then to take this raw data an present it in a useful way to the user (via properties). Note that
7317 parsing is thus 'lazy' in no processing of the raw data is not done at event dispatch time but
7318 only when the properties of an event are accessed.
7320 Ownership of the template transfers when this call is made. The source will modify this and
7321 assumes it has exclusive use (thus you should clone the template if necessary).
7323 Another important aspect is that templates are reused by TraceEventSource aggressively. The
7324 expectation is that no memory needs to be allocated during a normal dispatch
7328 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.UnregisterEventTemplate(System.Delegate,System.Int32,System.Guid)">
7330 UnregisterEventTemplate undoes the action of RegisterEventTemplate. Logically you would
7331 pass the template to unregister, but typically you don't have that at unregistration time.
7332 To avoid forcing clients to remember the templates they registered, UnregisterEventTemplate
7333 takes three things that will uniquely identify the template to unregister. These are
7334 the eventID, and provider ID and the Action (callback) for the template.
7337 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterParser(Microsoft.Diagnostics.Tracing.TraceEventParser)">
7339 It is expected that when a subclass of TraceEventParser is created, it calls this
7340 method on the source. This allows the source to do any Parser-specific initialization.
7343 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterUnhandledEvent(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean})">
7345 Indicates that this callback should be called on any unhandled event. The callback
7346 returns true if the lookup should be retried after calling this (that is there is
7347 the unhandled event was found).
7350 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.TaskNameForGuid(System.Guid)">
7352 Looks if any provider has registered an event with task with 'taskGuid'. Will return null if
7353 there is no registered event.
7356 <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.ProviderNameForGuid(System.Guid)">
7358 Looks if any provider has registered with the given GUID OR has registered any task that matches
7359 the GUID. Will return null if there is no registered event.
7362 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventParser">
7364 TraceEventParser Represents a class that knows how to decode particular set of events (typically
7365 all the events of a single ETW provider). It is expected that subclasses of TraceEventParser
7366 have a constructor that takes a TraceEventSource as an argument that 'attaches' th parser
7367 to the TraceEventSource. TraceEventParsers break into two groups.
7369 * Those that work on a single provider, and thus the provider name is implicit in th parser. This is the common case.
7370 The AddCallbackForEvent* methods are meant to be used for these TraceEventParsers</para>
7372 * Those that work on multiple providers. There are only a handful of these (DynamicTraceEventParser, ...).
7373 The AddCallbackForProviderEvent* methods which take 'Provider' parameters are meant to be used for these TraceEventParsers
7376 In addition to the AddCallback* methods on TraceEventParser, there are also Observe* extension methods that
7377 provide callbacks using the IObservable style.
7381 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.Source">
7383 Get the source this TraceEventParser is attached to.
7386 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventParser.All">
7388 Subscribe to all the events this parser can parse. It is shorthand for AddCallback{TraceEvent}(value)/RemoveCallback(value)
7391 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvent``1(System.String,System.Action{``0})">
7393 A shortcut that adds 'callback' in the provider associated with this parser (ProvderName) and an event name 'eventName'. 'eventName'
7394 can be null in which case any event that matches 'Action{T}' will call the callback.
7395 'eventName is of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'.
7397 The callback alone is used as the subscription id for unregistration, so the callback delegate should be unique (by delegate comparison)
7401 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Action{``0})">
7403 Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and
7404 whose eventName will pass 'eventNameFilter'.
7407 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Predicate{System.String},System.Action{``0})">
7409 Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and
7410 whose eventName will pass 'eventNameFilter'. The eventNameFilter parameter can be null, in which case all events that are compatible
7411 with T will be selected.
7413 eventNames passed to the filer are of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'.
7416 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Predicate{System.String},System.Object,System.Action{``0})">
7418 Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and
7419 whose eventName will pass 'eventNameFilter'. The eventNameFilter parameter can be null, in which case all events that are compatible
7420 with T will be selected.
7422 A 'subscriptionID' can be passed and this value along with the callback can be used
7423 to uniquely identify subscription to remove using the 'RemoveCallback' API. If null is passed, then only the identity of the callback can
7424 be used to identify the subscription to remove.
7426 eventNames passed to the filer are of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'.
7430 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvent(System.String,System.String,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7432 A shortcut that adds 'callback' for the event in 'providerName' and an event name 'eventName'
7433 The callback alone is used as the subscription id for unregistration, so the callback delegate should be unique (by delegate comparison)
7435 eventName is of the of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'.
7439 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvents(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7441 Cause 'callback' to be called for any event that this parser recognizes for which the function 'eventsToObserve'
7442 returns 'AcceptEvent'. The 'eventsToObserve is given both the provider name (first) and the event name and can return
7443 'AcceptEvent' 'RejectEvent' or 'RejectProvider' (in which case it may not be called again for that provider).
7444 eventsToObserver can be null in which case all events that match the parser recognizes are selected.
7446 eventNames passed to the filer are of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'.
7449 Thus this method works for parsers that parse more than one provider (e.g. DynamicTraceEventParser).
7453 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvents(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Object,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7455 Cause 'callback' to be called for any event that this parser recognizes for which the function 'eventsToObserve'
7456 returns 'AcceptEvent'. The 'eventsToObserve is given both the provider name (first) and the event name and can return
7457 'AcceptEvent' 'RejectEvent' or 'RejectProvider' (in which case it may not be called again for that provider).
7458 eventsToObserver can be null in which case all events that match the parser recognizes are selected.
7460 eventNames passed to the filer are of the form 'TaskName/OpcodeName' if the event has a non-trivial opcode, otherwise it is 'TaskName'. ///
7462 Thus this method works for parsers that parse more than one provider (e.g. DynamicTraceEventParser).
7464 A subscriptionID can optionally be passed. This is used (along with the callback identity) to identify this to the 'RemoveCallback' If you
7465 don't need to remove the callback or you will do it in bulk, you don't need this parameter.
7469 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.RemoveCallback``1(System.Action{``0},System.Object)">
7471 Remove all subscriptions added with 'AddCallback' (any overload), that is compatible with T, has a callback 'callback' and subscriptionId 'subscriptionId'
7472 where 'subscriptionId' was the value that was optionally passed to 'AddCallback' to provide exactly this disambiguation.
7474 'callback' or 'subscriptionId' can be null, in which case it acts as a wild card. Thus RemoveCallback{TraceEvent}(null, null) will remove all callbacks
7475 that were registered through this parser.
7479 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.IsStatic">
7481 A static TraceEventParser is a parser where the set of events that can be subscribed to (and their payload fields) are known at
7482 compile time. There are very few dynamic TraceEventParsers (DynamicTraceEventParser, RegisteredTraceEventParser and WPPTraceEventParser)
7485 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
7487 All TraceEventParsers invoke this constructor. If 'dontRegister' is true it is not registered with the source.
7490 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.GetProviderName">
7492 Normally a TraceEvent parser knows how to parse only one provider. If this is true
7493 ProviderName returns the name of this provider. If the parser knows how to parse
7494 more than one provider, this property returns null.
7497 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.StateObject">
7499 If the parser needs to persist data along with the events we put it in a separate object.
7500 This object and then implement serialization functionality that allows it to be persisted (this is for ETLX support).
7503 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7505 Returns a list of all templates currently existing (new ones can come in, but OnNewEventDefintion must be called
7506 whenever that happens. Note that the returned templates MUST be cloned and do not have their source or parser state
7507 fields set. These must be set as part of subscription (after you know if you care about them or not).
7509 eventsToObserver is given the provider name and event name and those events that return AcceptEvent will
7510 have the 'callback' function called on that template. eventsToObserver can be null which mean all events.
7512 The returned template IS READ ONLY! If you need a read-write copy (typical), clone it first.
7515 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.OnNewEventDefintion(Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean)">
7517 If the parser can change over time (it can add new definitions), It needs to support this interface. See EnumerateDynamicTemplates for details.
7518 This function should be called any time a new event is now parsable by the parser. If it is guaranteed that the particular event is
7519 definitely being ADDED (it never existed in the past), then you can set 'mayHaveExistedBefore' to false and save some time.
7521 It returns false if there are no definitions for that particular Provider (and thus you can skip callback if desired).
7524 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.Subscribe(Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest,Microsoft.Diagnostics.Tracing.TraceEvent,System.Object,System.Boolean)">
7526 Given a subscription request, and a template that can now be parsed (and its state, which is just TraceEventParser.StateObj)
7527 If subscription states that the template should be registered with the source, then do the registration.
7529 if 'mayHaveExistedBefore' means that this template definition may have been seen before (DynamicTraceEventParsers do this as
7530 you may get newer versions dynamically registering themselves). In that case this should be set. If you can guaranteed that
7531 a particular template (provider-eventID pair) will only be subscribed at most once you can set this to false.
7534 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest">
7536 Keeps track of a single 'AddCallback' request so it can be removed later. It also handles lazy addition of events.
7539 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest.#ctor(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Delegate,System.Object)">
7541 Create a subscription request. 'eventsToObserve takes a provider name (first) and a event name and returns a three valued EventFilterResponse
7542 value (accept, reject, reject provider)
7545 <member name="F:Microsoft.Diagnostics.Tracing.TraceEventParser.source">
7547 The source that this parser is connected to.
7550 <member name="T:Microsoft.Diagnostics.Tracing.EventFilterResponse">
7552 EventFilterResponse is the set of responses a user-defined filtering routine, might return. This is used in the TraceEventParser.AddCallbackForProviderEvents method.
7555 <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.RejectEvent">
7557 Not an interesting event, but other events in the same provider may be
7560 <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.RejectProvider">
7562 No event in the provider will be accepted
7565 <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.AcceptEvent">
7567 An interesting event
7570 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions">
7572 An options class for the TraceEventDispatcher
7575 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions.StartTime">
7577 StartTime from which you want to start analyzing the events for file formats that support this.
7580 <member name="P:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions.EndTime">
7582 EndTime till when you want to analyze events for file formats that support this.
7585 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcher">
7587 A TraceEventDispatcher is a TraceEventSource that supports a callback model for dispatching events.
7590 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.GetDispatcherFromFileName(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
7592 Obtains the correct TraceEventDispatcher for the given trace file name.
7594 <param name="traceFileName">A path to a trace file.</param>
7595 <returns>A TraceEventDispatcher for the given trace file.</returns>
7597 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.UnhandledEvents">
7599 Subscribers to UnhandledEvent are called if no other hander has processed the event. It is
7600 generally used in DEBUG builds to validate that events are getting to the source at all.
7603 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.AllEvents">
7605 Subscribers to EveryEvent are called on every event in the trace. Normally you don't want
7606 to subscribe to this but rather use a TraceEvenParser (which knows how to decode the payloads)
7607 and subscribe to particular events through that. For example Using TraceEventSource.Dynamic.All
7608 or TraceEventSource.Dynamic.All is more likely to be what you are looking for. AllEvents is only
7609 an event callback of last resort, that only gives you the 'raw' data (common fields but no
7612 This is called AFTER any event-specific handlers.
7616 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.UnhandledEvent">
7618 Subscribers to UnhandledEvent are called if no other hander has processed the event. It is
7619 generally used in DEBUG builds to validate that events are getting to the source at all.
7622 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.EveryEvent">
7624 Subscribers to EveryEvent are called on every event in the trace. Normally you don't want
7625 to subscribe to this but rather use a TraceEvenParser and subscribe to particular events
7628 This is called AFTER any event-specific handlers.
7632 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Process">
7634 Once a client has subscribed to the events of interest, calling Process actually causes
7635 the callbacks to happen.
7637 Subclasses implementing this method should call 'OnCompleted'
7641 <returns>false If StopProcessing was called</returns>
7643 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.StopProcessing">
7645 Calling StopProcessing in a callback when 'Process()' is running will indicate that processing
7646 should be stopped immediately and that the Process() method should return.
7648 Note that this stop request will not be honored until the next event from the source. Thus
7649 for real time sessions there is an indeterminate delay before the stop will complete.
7650 If you need to force the stop you should instead call Dispose() on the session associated with
7651 the real time session. This will cause the source to be shut down and thus also stop processing
7652 (Process() will return) but is guaranteed to complete in a timely manner.
7655 <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Completed">
7657 Subscribers of Completed will be called after processing is complete (right before TraceEventDispatcher.Process returns.
7660 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.AddDispatchHook(System.Action{Microsoft.Diagnostics.Tracing.TraceEvent,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent}})">
7662 Wrap (or filter) the dispatch of every event from the TraceEventDispatcher stream.
7663 Instead of calling the normal code it calls 'hook' with both the event to be dispatched
7664 and the method the would normally do the processing. Thus the routine has
7665 the option to call normal processing, surround it with things like a lock
7666 or skip it entirely. This can be called more than once, in which case the last
7667 hook method gets called first (which may end up calling the second ...)
7669 For example,here is an example that uses AddDispatchHook to
7670 take a lock is taken whenever dispatch work is being performed.
7672 AddDispatchHook((anEvent, dispatcher) => { lock (this) { dispatcher(anEvent); } });
7675 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.OnCompleted">
7677 Called when processing is complete. You can call this more than once if your not sure if it has already been called.
7678 however we do guard against races.
7681 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.DistinctCallbackCount">
7683 Number of different events that have callbacks associated with them
7686 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.CallbackCount">
7688 Total number of callbacks that are registered. Even if they are for the same event.
7692 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Dispatch(Microsoft.Diagnostics.Tracing.TraceEvent)">
7694 This is the routine that is called back when any event arrives. Basically it looks up the GUID
7695 and the opcode associated with the event and finds right subclass of TraceEvent that
7696 knows how to decode the packet, and calls its virtual TraceEvent.Dispatch method. Note
7697 that TraceEvent does NOT have a copy of the data, but rather just a pointer to it.
7698 This data is ONLY valid during the callback.
7701 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Lookup(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
7703 Lookup up the event based on its ProviderID (GUID) and EventId (Classic use the TaskId and the
7704 Opcode field for lookup, but use these same fields (see ETWTraceEventSource.RawDispatchClassic)
7707 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Dispose(System.Boolean)">
7712 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Finalize">
7717 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Insert(Microsoft.Diagnostics.Tracing.TraceEvent)">
7719 Inserts 'template' into the hash table, using 'providerGuid' and and 'eventID' as the key.
7720 For Vista ETW events 'providerGuid' must match the provider GUID and the 'eventID' the ID filed.
7721 For PreVist ETW events 'providerGuid must match the task GUID the 'eventID' is the Opcode
7724 <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.GenTaskGuidFromProviderGuid(System.Guid,System.UInt16)">
7726 A helper for creating a set of related guids (knowing the providerGuid can can deduce the
7727 'taskNumber' member of this group. All we do is add the taskNumber to GUID as a number.
7730 <member name="T:Microsoft.Diagnostics.Tracing.EmptyTraceData">
7732 TraceEventParsers can use this template to define the event for the trivial case where the event has no user-defined payload
7733 <para>This is only useful to TraceEventParsers.</para>
7736 <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.EmptyTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
7738 Construct a TraceEvent template which has no payload fields with the given metadata and action
7741 <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.ToXml(System.Text.StringBuilder)">
7743 implementation of TraceEvent Interface.
7746 <member name="P:Microsoft.Diagnostics.Tracing.EmptyTraceData.PayloadNames">
7748 implementation of TraceEvent Interface.
7751 <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.PayloadValue(System.Int32)">
7753 implementation of TraceEvent Interface.
7756 <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.Dispatch">
7758 Dispatches the event to the action associated with the template.
7761 <member name="P:Microsoft.Diagnostics.Tracing.EmptyTraceData.Target">
7766 <member name="T:Microsoft.Diagnostics.Tracing.StringTraceData">
7768 When the event has just a single string value associated with it, you can use this shared event
7769 template rather than making an event-specific class.
7772 <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.Value">
7774 The value of the one string payload property.
7777 <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.StringTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String,System.Boolean)">
7779 Construct a TraceEvent template which has one string payload field with the given metadata and action
7782 <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.ToXml(System.Text.StringBuilder)">
7784 implementation of TraceEvent Interface.
7787 <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.PayloadNames">
7789 implementation of TraceEvent Interface.
7792 <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.PayloadValue(System.Int32)">
7794 implementation of TraceEvent Interface.
7797 <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.Dispatch">
7799 implementation of TraceEvent Interface.
7802 <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.Target">
7807 <member name="T:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent">
7809 UnhandledTraceEvent is a TraceEvent when is used when no manifest information is available for the event.
7812 <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.ToXml(System.Text.StringBuilder)">
7814 implementation of TraceEvent Interface.
7817 <member name="P:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PayloadNames">
7819 implementation of TraceEvent Interface.
7822 <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PayloadValue(System.Int32)">
7824 implementation of TraceEvent Interface.
7827 <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.Dispatch">
7829 implementation of TraceEvent Interface.
7832 <member name="P:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.Target">
7837 <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.ToString">
7839 implementation of TraceEvent Interface.
7842 <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PrepForCallback">
7844 There is some work needed to prepare the generic unhandledTraceEvent that we defer
7845 late (since we often don't care about unhandled events)
7847 TODO this is probably not worht the complexity...
7850 <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions">
7852 ObservableExtensions defines methods on TraceEventParser that implement the IObservable protocol for implementing callbacks.
7855 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe``1(Microsoft.Diagnostics.Tracing.TraceEventParser,System.String)">
7857 Returns an IObjservable that observes all events that 'parser' knows about that return a T. If eventName is
7858 non-null, the event's name must match 'eventName', but if eventName is null, any event that returns a T is observed.
7860 This means that Observe{TraceEvent}(parser) will observe all events that the parser can parse.
7862 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7863 referenced for as long as you like.
7867 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe``1(Microsoft.Diagnostics.Tracing.TraceEventParser,System.Predicate{System.String})">
7869 Returns an IObjservable that observes all events that 'parser' knows about that return a T and whose event
7870 name matches the 'eventNameFilter' predicate.
7872 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7873 referenced for as long as you like.
7876 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe(Microsoft.Diagnostics.Tracing.TraceEventParser,System.String,System.String)">
7878 Observe a particular event from a particular provider. If eventName is null, it will return every event from the provider
7880 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7881 referenced for as long as you like.
7884 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe(Microsoft.Diagnostics.Tracing.TraceEventParser,System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse})">
7886 Given a predicate 'eventToObserve' which takes the name of a provider (which may be of the form Provider(GUID)) (first) and
7887 an event name (which may be of the form EventID(NUM)) and indicates which events to observe, return an IObservable
7888 that observes those events.
7890 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7891 referenced for as long as you like. .
7894 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.ObserveAll(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
7896 Returns an observable that observes all events from the event source 'source'
7898 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7899 referenced for as long as you like.
7902 <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.ObserveUnhandled(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
7904 Returns an observable that observes all events from the event source 'source' which are not handled by a callback connected to 'source'
7906 Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be
7907 referenced for as long as you like.
7910 <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions.TraceEventObservable`1">
7912 A TraceEventObservable is a helper class that implements the IObservable pattern for TraceEventDispatcher
7913 (like ETWTraceEventDispatcher). It is called from the TraceEventParser.Observe*{T} methods.
7915 <typeparam name="T"></typeparam>
7917 <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions.TraceEventObservable`1.TraceEventSubscription">
7919 A TraceEventSubscription is helper class that hooks 'callback' and 'completedCallback' to the 'observable' and
7920 unhooks them when 'Dispose' is called.
7923 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods">
7925 TraceEventNativeMethods contains the PINVOKE declarations needed
7926 to get at the Win32 TraceEvent infrastructure. It is effectively
7927 a port of evntrace.h to C# declarations.
7930 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.TIME_ZONE_INFORMATION">
7932 Time zone info. Used as one field of TRACE_EVENT_LOGFILE, below.
7933 Total struct size is 0xac.
7936 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.WNODE_HEADER">
7938 EventTraceHeader structure used by EVENT_TRACE_PROPERTIES
7941 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_PROPERTIES">
7943 EVENT_TRACE_PROPERTIES is a structure used by StartTrace, ControlTrace
7944 however it can not be used directly in the definition of these functions
7945 because extra information has to be hung off the end of the structure
7946 before being passed. (LofFileNameOffset, LoggerNameOffset)
7949 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_HEADER">
7951 EventTraceHeader and structure used to defined EVENT_TRACE (the main packet)
7952 I have simplified from the original struct definitions. I have
7953 omitted alternate union-fields which we don't use.
7956 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE">
7958 EVENT_TRACE is the structure that represents a single 'packet'
7959 of data repesenting a single event.
7962 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.TRACE_LOGFILE_HEADER">
7964 TRACE_LOGFILE_HEADER is a header used to define EVENT_TRACE_LOGFILEW.
7965 Total struct size is 0x110.
7968 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_LOGFILEW">
7970 EVENT_TRACE_LOGFILEW Main struct passed to OpenTrace() to be filled in.
7971 It represents the collection of ETW events as a whole.
7974 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_HEADER">
7976 EventTraceHeader and structure used to define EVENT_TRACE_LOGFILE (the main packet on Vista and above)
7977 I have simplified from the original struct definitions. I have
7978 omitted alternate union-fields which we don't use.
7981 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.ETW_BUFFER_CONTEXT">
7983 Provides context information about the event
7986 <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD">
7988 Defines the layout of an event that ETW delivers
7991 <member name="T:Microsoft.Diagnostics.Tracing.ControllerCommand">
7993 Possible control commands (borrowed from EventSource)
7996 <member name="F:Microsoft.Diagnostics.Tracing.ControllerCommand.Update">
7998 Standard 'update' command to send additional information to a provider
8001 <member name="F:Microsoft.Diagnostics.Tracing.ControllerCommand.SendManifest">
8003 Instructs an EventSource-based provider to send its manifest
8006 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventSession">
8008 A TraceEventSession represents a single ETW Tracing Session. A session is and event sink that
8009 can enable or disable event logging from event providers). TraceEventSessions can log their
8010 events either to a file, or by issuing callbacks when events arrive (a so-called 'real time'
8013 Session are MACHINE wide and unlike most OS resources the operating system does NOT reclaim
8014 them when the process that created it dies. By default TraceEventSession tries is best to
8015 do this reclamation, but it is possible that for 'orphan' session to accidentally survive
8016 if the process is ended abruptly (e.g. by the debugger or a user explicitly killing it). It is
8017 possible to turn off TraceEventSession automatic reclamation by setting the StopOnDispose
8018 property to false (its default is true).
8021 Kernel events have additional restrictions. In particular there is a special API (EnableKernelProvider).
8022 Before Windows 8, there was a restriction that kernel events could only be enabled from a session
8023 with a special name (see KernelTraceEventParser.KernelSessionName) and thus there could only be a single
8024 session that could log kernel events (and that session could not log non-kernel events). These
8025 restrictions were dropped in windows 8.
8029 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.#ctor(System.String,System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions)">
8031 Create a new logging session sending the output to a given file.
8033 <param name="sessionName">
8034 The name of the session. Since session can exist beyond the lifetime of the process this name is
8035 used to refer to the session from other processes after it is created. By default TraceEventSessions
8036 do their best to close down if the TraceEventSession dies (see StopOnDispose), however if StopOnDispose
8037 is set to false, the session can live on after process death, and you use the name to refer to it later.
8039 <param name="fileName">
8040 The output moduleFile (by convention .ETL) to put the event data. If this is null, and CircularMB is set
8041 to something non-zero, then it will do an in-memory circular buffer. You can get this buffer by
8042 using the 'SetFileName()' method which dumps the data in the buffer.
8044 <param name="options">Additional flags that influence behavior. Note that the 'Create' option is implied for file mode sessions. </param>
8046 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.#ctor(System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions)">
8048 Open a logging session. By default (if options is not specified) a new 'real time' session is created if
8049 the session already existed it is closed and reopened (thus orphans are cleaned up on next use). By default
8050 sessions are closed on Dispose, but if the destructor does not run it can produce 'orphan' session that will
8051 live beyond the lifetime of the process. You can use the StopOnDispose property to force sessions to live
8052 beyond the TraceEventSession that created them and use the TraceEventSessionOptions.Attach option to reattach
8055 <param name="sessionName"> The name of the session to open. Should be unique across the machine.</param>
8056 <param name="options"> Construction options. TraceEventSessionOptions.Attach indicates a desire to attach
8057 to an existing session. </param>
8059 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetActiveSession(System.String)">
8061 Looks for an existing active session named 'sessionName; and returns the TraceEventSession associated with it if it exists.
8062 Returns null if the session does not exist. You can use the GetActiveSessionNames() to get a list of names to pass to this method.
8065 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.String,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions)">
8067 Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider name.
8068 This API first checks if a published provider exists by that name, otherwise it
8069 assumes it is an EventSouce and determines the provider Guid by hashing the name according to a
8070 well known algorithm. Thus it will never return a failure for a incorrect spelling of the name.
8072 <param name="providerName">
8073 The name of the provider. It must either be registered with the operating system (logman query providers returns it)
8074 or it must be an EventSource (see GetEventSourceGuidFromName)</param>
8075 <param name="providerLevel">The verbosity to turn on</param>
8076 <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8077 low 32 bits are used by classic providers and passed as the 'flags' value. Zero
8078 is a special value which is a provider defined default, which is usually 'everything'</param>
8079 <param name="options">Additional options for the provider (e.g. taking a stack trace), arguments ... </param>
8080 <returns>true if the session already existed and needed to be restarted.</returns>
8082 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions)">
8084 Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider Guid.
8086 <param name="providerGuid">
8087 The Guid that represents the event provider enable. </param>
8088 <param name="providerLevel">The verbosity to turn on</param>
8089 <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8090 low 32 bits are used by classic providers and passed as the 'flags' value. Zero
8091 is a special value which is a provider defined default, which is usually 'everything'</param>
8092 <param name="options">Additional options for the provider (e.g. taking a stack trace), arguments ... </param>
8093 <returns>true if the session already existed and needed to be restarted.</returns>
8095 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.String,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
8097 Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider name.
8098 This API first checks if a published provider exists by that name, otherwise it
8099 assumes it is an EventSouce and determines the provider Guid by hashing the name according to a
8100 well known algorithm. Thus it will never return a failure for a incorrect spelling of the name.
8102 <param name="providerName">
8103 The name of the provider. It must either be registered with the operating system (logman query providers returns it)
8104 or it must be an EventSource (see GetEventSourceGuidFromName)</param>
8105 <param name="providerLevel">The verbosity to turn on</param>
8106 <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8107 low 32 bits are used by classic providers and passed as the 'flags' value. Zero
8108 is a special value which is a provider defined default, which is usually 'everything'</param>
8109 <param name="options">Additional options for the provider (e.g. taking a stack trace)</param>
8110 <param name="values">This is set of key-value strings that are passed to the provider
8111 for provider-specific interpretation. Can be null if no additional args are needed.
8112 If the special key-value pair 'Command'='SendManifest' is provided, then the 'SendManifest'
8113 command will be sent (which causes EventSources to re-dump their manifest to the ETW log. </param>
8114 <returns>true if the session already existed and needed to be restarted.</returns>
8116 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
8118 Enable a NON-KERNEL provider (see also EnableKernelProvider) represented by 'providerGuid'.
8120 <param name="providerGuid">
8121 The Guid that represents the event provider enable. </param>
8122 <param name="providerLevel">The verbosity to turn on</param>
8123 <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8124 low 32 bits are used by classic providers and passed as the 'flags' value. Zero
8125 is a special value which is a provider defined default, which is usually 'everything'</param>
8126 <param name="options">Additional options for the provider (e.g. taking a stack trace)</param>
8127 <param name="values">This is set of key-value strings that are passed to the provider
8128 for provider-specific interpretation. Can be null if no additional args are needed.
8129 If the special key-value pair 'Command'='SendManifest' is provided, then the 'SendManifest'
8130 command will be sent (which causes EventSources to re-dump their manifest to the ETW log. </param>
8131 <returns>true if the session already existed and needed to be restarted.</returns>
8133 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProviderWithRawProviderData(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Byte[],System.Int32)">
8135 Enable an ETW provider, passing a raw blob of data to the provider as a Filter specification.
8137 Note that this routine is only provided to interact with old ETW providers that can interpret EVENT_FILTER_DESCRIPTOR data
8138 but did not conform to the key-value string conventions. This allows this extra information to be passed to these old
8139 providers. Ideally new providers follow the key-value convention and EnableProvider can be used.
8142 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MakeDictionary(System.String[])">
8144 Helper function that is useful when using EnableProvider with key value pairs.
8145 Given a list of key-value pairs, create a dictionary of the keys mapping to the values.
8148 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableKernelProvider(Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords,Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords)">
8150 Enable the kernel provider for the session. Before windows 8 this session must be called 'NT Kernel Session'.
8151 This API is OK to call from one thread while Process() is being run on another
8152 <param name="flags">Specifies the particular kernel events of interest</param>
8153 <param name="stackCapture">
8154 Specifies which events should have their stack traces captured when an event is logged</param>
8155 <returns>Returns true if the session existed before and was restarted (see TraceEventSession)</returns>
8158 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableWindowsHeapProvider(System.Int32)">
8160 Turn on windows heap logging (stack for allocation) for a particular existing process.
8163 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableWindowsHeapProvider(System.String)">
8165 Turn on windows heap logging for a particular EXE file name (just the file name, no directory, but it DOES include the .exe extension)
8166 This API is OK to call from one thread while Process() is being run on another
8168 <param name="exeFileName"></param>
8170 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.DisableProvider(System.Guid)">
8172 Disables a provider with the given provider ID completely
8175 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.DisableProvider(System.String)">
8177 Disables a provider with the given name completely
8180 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Stop(System.Boolean)">
8182 Once started, event sessions will persist even after the process that created them dies. They will also be
8183 implicitly stopped when the TraceEventSession is closed unless the StopOnDispose property is set to false.
8184 This API is OK to call from one thread while Process() is being run on another
8187 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Dispose">
8189 Close the session and clean up any resources associated with the session. It is OK to call this more than once.
8190 This API is OK to call from one thread while Process() is being run on another. Calling Dispose is on
8191 a real time session is the way you can force a real time session to stop in a timely manner.
8194 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Flush">
8196 Asks all providers to flush events to the session
8197 This API is OK to call from one thread while Process() is being run on another
8200 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetFileName(System.String)">
8202 For either session create with a file name this method can be used to redirect the data to a
8203 new file (so the previous one can be uploaded or processed offline),
8205 It can also be used for a in-memory circular buffer session (FileName == null and CircularMB != 0)
8206 but its semantics is that simply writes the snapshot to the file (and closes it). It does not
8207 actually make the FileName property become non-null because it only flushes the data, it does
8208 not cause persistent redirection of the data stream. (it is like it auto-reverts).
8210 It is an error to call this on a real time session. (FileName == null and CircularMB == 0)
8212 <param name="newName">The path to the file to write the data to.</param>
8214 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CaptureStateOnSetFileName">
8216 If set, whenever a SetFileName is called (causing a new ETL file to be created), force
8217 a capture state for every provider that is currently turned on. This way the file
8218 will be self-contained (will contain all the capture state information needed to decode events)
8219 This setting is true by default.
8222 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CaptureState(System.Guid,System.UInt64,System.Int32,System.Object)">
8224 Sends the CAPTURE_STATE command to the provider. This instructs the provider to log any events that are needed to
8225 reconstruct important state that was set up before the session started. What is actually done is provider specific.
8226 EventSources will re-dump their manifest on this command.
8227 This API is OK to call from one thread while Process() is being run on another
8229 This routine only works Win7 and above, since previous versions don't have this concept. The providers also has
8233 <param name="providerGuid">The GUID that identifies the provider to send the CaptureState command to</param>
8234 <param name="matchAnyKeywords">The Keywords to send as part of the command (can influence what is sent back)</param>
8235 <param name="filterType">if non-zero, this is passed along to the provider as type of the filter data.</param>
8236 <param name="data">If non-null this is either an int, or a byte array and is passed along as filter data.</param>
8238 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProviderTimeoutMSec">
8240 When you issue a EnableProvider command, on windows 7 and above it can be done synchronously (that is you know that because
8241 the EnableProvider returned that the provider actually got the command). However synchronous behavior means that
8242 you may wait forever. This is the time EnableProvider waits until it gives up. Setting this
8243 to 0 means asynchronous (fire and forget). The default is 10000 (wait 10 seconds)
8244 Before windows 7 EnableProvider is always asynchronous.
8247 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.StopOnDispose">
8249 If set then Stop() will be called automatically when this object is Disposed or Finalized by the GC.
8250 This is true BY DEFAULT, so if you want your session to survive past the end of the process
8251 you must set this to false.
8254 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CircularBufferMB">
8256 Cause the log to be a circular buffer. The buffer size (in MegaBytes) is the value of this property.
8257 Setting this to 0 will cause it to revert to non-circular mode.
8258 The setter can only be called BEFORE any provider is enabled.
8261 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MultiFileMB">
8263 Cause the as a set of files with a given maximum size. The file name must end in .ETL and the
8264 output is then a series of files of the form *NNN.ETL (That is it adds a number just before the
8265 .etl suffix). If you make your file name *.user.etl then the output will be *.user1.etl, *.user2.etl ...
8266 And the MergeInPlace command below will merge them all nicely.
8268 You can have more control over this by using a normal sequential file but use the SetFileName()
8269 method to redirect the data to new files as needed.
8272 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.BufferSizeMB">
8274 Sets the size of the buffer the operating system should reserve to avoid lost packets. Starts out
8275 as a very generous 64MB for files. If events are lost, this can be increased, but keep in mind that
8276 no value will help if the average incoming rate is faster than the processing rate.
8277 The setter can only be called BEFORE any provider is enabled.
8280 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.BufferQuantumKB">
8282 This is the unit in which data is flushed in Kilobytes. By default it is 64 (KB).
8283 By default a TraceEventSession will flush every second, and this amount of space will be transferred
8284 to the file. Ideally it is smaller than the number data bytes you expect in a second from any
8285 particular processor. It can't be less than 1K per processor on the machine. However if you make
8286 it less than 64 (K) you will limit the size of the event that the process can send
8287 (they will simply be discarded).
8290 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CpuSampleIntervalMSec">
8292 The rate at which CPU samples are collected. By default this is 1 (once a millisecond per CPU).
8293 There is a lower bound on this (typically .125 Msec)
8296 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.StackCompression">
8298 Indicate that this session should use compress the stacks to save space.
8299 Must be set before any providers are enabled. Currently only works for kernel events.
8302 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SessionName">
8304 The name of the session that can be used by other threads to attach to the session.
8307 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.FileName">
8309 The name of the moduleFile that events are logged to. Null means the session is real time
8310 or is a circular in-memory buffer. See also SetFileName() method.
8313 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Source">
8315 If this is a real time session you can fetch the source associated with the session to start receiving events.
8316 Currently does not work on file based sources (we expect you to wait until the file is complete).
8319 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsActive">
8321 Creating a TraceEventSession does not actually interact with the operating system until a
8322 provider is enabled. At that point the session is considered active (OS state that survives a
8323 process exit has been modified). IsActive returns true if the session is active.
8327 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EventsLost">
8329 Returns the number of events that should have been delivered to this session but were lost
8330 (typically because the incoming rate was too high). This value is up-to-date for real time
8334 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsCircular">
8336 Returns true if the session is logging to a circular buffer. This may be in-memory (FileName == null)
8337 or to a file (FileName != null)
8340 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsRealTime">
8342 Returns true if the session is Real Time. This means it is not to a file, and not circular.
8345 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsInMemoryCircular">
8347 Returns true if this is a in-memory circular buffer (it is circular without an output file).
8348 Use SetFileName() to dump the in-memory buffer to a file.
8351 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetActiveSessionNames">
8353 ETW trace sessions survive process shutdown. Thus you can attach to existing active sessions.
8354 GetActiveSessionNames() returns a list of currently existing session names. These can be passed
8355 to the TraceEventSession constructor to open it.
8357 <returns>A enumeration of strings, each of which is a name of a session</returns>
8359 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Merge(System.String[],System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions)">
8361 It is sometimes useful to merge the contents of several ETL files into a single
8362 output ETL file. This routine does that. It also will attach additional
8363 information that will allow correct file name and symbolic lookup if the
8364 ETL file is used on a machine other than the one that the data was collected on.
8365 If you wish to transport the file to another machine you need to merge them, even
8366 if you have only one file so that this extra information get incorporated.
8368 <param name="inputETLFileNames">The input ETL files to merge</param>
8369 <param name="outputETLFileName">The output ETL file to produce.</param>
8370 <param name="options">Optional Additional options for the Merge (seeTraceEventMergeOptions) </param>
8372 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MergeInPlace(System.String,System.IO.TextWriter)">
8374 This variation of the Merge command takes the 'primary' etl file name (X.etl)
8375 and will merge in any files that match .clr*.etl .user*.etl. and .kernel.etl.
8378 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsElevated">
8380 Is the current process Elevated (allowed to turn on a ETW provider). This is useful because
8381 you need to be elevated to enable providers on a TraceEventSession.
8384 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetDebugPrivilege">
8386 Set the Windows Debug Privilege. Useful because some event providers require this privilege, and
8387 and it must be enabled explicitly (even if the process is elevated).
8390 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Finalize">
8392 The 'properties' field is only the header information. There is 'tail' that is
8393 required. 'ToUnmangedBuffer' fills in this tail properly.
8396 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ProviderNameToGuid">
8398 Returns a sorted dictionary of names and Guids for every provider registered on the system.
8401 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ComputeEventIds(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_FILTER_DESCRIPTOR*,System.Byte*,System.Int32,System.Collections.Generic.IList{System.Int32},System.Boolean,System.Int32)">
8403 sets up the EVENT_FILTER_DESCRIPTOR descr to represent the Event Ids in 'eventIds'. You are given the buffer
8404 necessary for this (precomputed) for the EVENT_FILTER_EVENT_ID structure. 'enable' is true if this is to enable
8405 (otherwise disable) the events, and descrType indicates the descriptor type (either EVENT_FILTER_TYPE_EVENT_ID or
8406 EVENT_FILTER_TYPE_STACKWALK)
8409 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ComputeEventIdsBufferSize(System.Collections.Generic.IList{System.Int32})">
8411 Computes the number of bytes needed for the EVENT_FILTER_EVENT_ID structure to represent 'eventIds'
8412 return 0 if there is not need for the filter at all.
8415 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CleanFilterDataForEtwSession">
8417 Cleans out all provider data associated with this session.
8420 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetFilterDataForEtwSession(System.String,System.Byte[],System.Boolean)">
8422 SetDataForSession sets the filter data for an ETW session by storing it in the registry.
8423 This is basically a work-around for the fact that filter data does not get transmitted to
8424 the provider if the provider is not alive at the time the controller issues the EnableProvider
8425 call. We store in the registry and EventSource looks there for it if it is not present.
8427 Note that we support up to 'maxSession' etw sessions simultaneously active (having different
8428 filter data). The function return a sessionIndex that indicates which of the 'slots'
8429 was used to store the data. This routine also 'garbage collects' data for sessions that
8430 have died without cleaning up their filter data.
8432 If 'data' is null, then it indicates that no data should be stored and the registry entry
8435 If 'allSesions' is true it means that you want 'old style' data filtering that affects all ETW sessions
8436 This is present only used for compatibilty
8438 <returns>the session index that will be used for this session. Returns -1 if an entry could not be found </returns>
8440 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetStackTraceIds(Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords,Microsoft.Diagnostics.Tracing.Extensions.STACK_TRACING_EVENT_ID*,System.Int32)">
8442 Given a mask of kernel flags, set the array stackTracingIds of size stackTracingIdsMax to match.
8443 It returns the number of entries in stackTracingIds that were filled in.
8446 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetProperties(System.Byte*)">
8448 Get a EVENT_TRACE_PROPERTIES structure suitable for passing the the ETW out of a 'buffer' which must be PropertiesSize bytes
8452 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions">
8454 Used in the TraceEventSession.Merge method
8457 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions.None">
8462 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions.Compress">
8464 Compress the resulting file.
8467 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions">
8469 TraceEventProviderOptions represents all the optional arguments that can be passed to EnableProvider command.
8472 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.#ctor">
8474 Create new options object with no options set
8477 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.#ctor(System.String[])">
8479 Create new options object with a set of given provider arguments key-value pairs. There must be a even number
8480 of strings provided and each pair forms a key-value pair that is passed to the AddArgument() operator.
8483 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.Arguments">
8485 Arguments are a set of key-value strings that are passed uninterpreted to the EventSource. These can be accessed
8486 from the EventSource's command callback.
8489 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.AddArgument(System.String,System.String)">
8491 As a convenience, the 'Arguments' property can be modified by calling AddArgument that adds another Key-Value pair
8492 to it. If 'Arguments' is not a IDictionary, it is replaced with an IDictionary with the same key-value pairs before
8493 the new pair is added.
8496 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.RawArguments">
8498 For EventSources, you pass arguments to the EventSource by using key value pairs (this 'Arguments' property).
8499 However other ETW providers may expect arguments using another convention. RawArguments give a way of passing
8500 raw bytes to the provider as arguments. This is only meant for compatibility with old providers. Setting
8501 this property will cause the 'Arguments' property to be ignored.
8504 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.StacksEnabled">
8506 Setting StackEnabled to true will cause all events in the provider to collect stacks when event are fired.
8509 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.ProcessIDFilter">
8511 Setting ProcessIDFilter will limit the providers that receive the EnableCommand to those that match on of
8512 the given Process IDs.
8515 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.ProcessNameFilter">
8517 Setting ProcessNameFilter will limit the providers that receive the EnableCommand to those that match on of
8518 the given Process names (a process name is the name of the EXE without the PATH but WITH the extension).
8521 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDsToEnable">
8523 Setting EventIDs to Enable will enable a particular event of a provider by EventID (in addition to those
8524 enabled by keywords).
8527 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDStacksToEnable">
8529 Setting EventIDs to Enable will enable the collection of stacks for a event of a provider by EventID
8530 (Has no effect if StacksEnabled is also set since that enable stacks for all events IDs)
8533 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDsToDisable">
8535 Setting EventIDsToDisable to Enable will disable the event of a provider by EventID
8536 This happens after keywords have been processed, so disabling overrides enabling.
8539 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDStacksToDisable">
8541 Setting EventIDs to Enable will disable the collection of stacks for a event of a provider by EventID
8542 Has no effect unless StacksEnabled is also set (since otherwise stack collection is off).
8545 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.Clone">
8547 Make a deep copy of options and return it.
8551 <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.FilteringSupported">
8553 This return true on OS version beyond 8.1 (windows Version 6.3). It means most of the
8554 per-event filtering is supported.
8557 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.s_IsEtwFilteringSupported">
8559 This is the backing field for the lazily-computed <see cref="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.FilteringSupported"/> property.
8562 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions">
8564 TraceEventSessionOptions indicates special handling when creating a TraceEventSession.
8567 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.Create">
8569 Create a new session, stop and recreated it if it already exists. This is the default.
8572 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.Attach">
8574 Attach to an existing session, fail if the session does NOT already exist.
8577 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.NoRestartOnCreate">
8579 Normally if you create a session it will stop and restart it if it exists already. Setting
8580 this flat will disable the 'stop and restart' behavior. This is useful if only a single
8581 monitoring process is intended.
8584 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders">
8586 TraceEventProviders returns information about providers on the system.
8589 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderGuidByName(System.String)">
8591 Given the friendly name of a provider (e.g. Microsoft-Windows-DotNETRuntimeStress) return the
8592 GUID for the provider. It does this by looking at all the PUBLISHED providers on the system
8593 (that is those registered with wevtutuil). EventSources in particular do not register themselves
8594 in this way (see GetEventSourceGuidFromName). Names are case insensitive.
8595 It also checks to see if the name is an actual GUID and if so returns that.
8596 Returns Guid.Empty on failure.
8599 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetEventSourceGuidFromName(System.String)">
8601 EventSources have a convention for converting its name to a GUID. Use this convention to
8602 convert 'name' to a GUID. In this way you can get the provider GUID for a EventSource
8603 however it can't check for misspellings. Names are case insensitive.
8606 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderName(System.Guid)">
8608 Finds the friendly name for 'providerGuid' Returns the Guid as a string if can't be found.
8611 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.MaybeAnEventSource(System.Guid)">
8613 Returns true if 'providerGuid' can be an eventSource. If it says true, there is a 1/16 chance it is not.
8614 However if it returns false, it is definitely not following EventSource Guid generation conventions.
8617 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetPublishedProviders">
8619 Returns the Guid of every event provider that published its manifest on the machine. This is the
8620 same list that the 'logman query providers' command will generate. It is pretty long (> 1000 entries)
8622 A event provider publishes a manifest by compiling its manifest into a special binary form and calling
8623 the wevtutil utility. Typically EventSource do NOT publish their manifest but most operating
8624 system provider do publish their manifest.
8628 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetRegisteredOrEnabledProviders">
8630 Returns the GUID of all event provider that either has registered itself in a running process (that is
8631 it CAN be enabled) or that a session has enabled (even if no instances of the provider exist in any process).
8633 This is a relatively small list (less than 1000), unlike GetPublishedProviders.
8637 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetRegisteredProvidersInProcess(System.Int32)">
8639 Returns a list of provider GUIDs that are registered in a process with 'processID'. Useful for discovering
8640 what providers are available for enabling for a particular process.
8643 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderKeywords(System.Guid)">
8645 Returns a description of the keywords a particular provider provides. Only works if the provider has
8646 published its manifest to the operating system.
8647 Throws an exception if providerGuid is not found
8650 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.SessionInfosForProvider(System.Guid,System.Int32)">
8652 Returns a list of TRACE_ENABLE_INFO structures that tell about each session (what keywords and level they are
8653 set to, for the provider associated with 'providerGuid'. If 'processId != 0, then only providers in that process
8657 <member name="T:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem">
8659 A list of these is returned by GetProviderKeywords
8662 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Name">
8664 The name of the provider keyword.
8667 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Description">
8669 The description for the keyword for the provider
8672 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Value">
8674 the value (bitvector) for the keyword.
8677 <member name="M:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.ToString">
8679 and XML representation for the ProviderDataItem (for debugging)
8682 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources">
8684 TraceEventProfileSources is the interface for the Windows processor CPU counter support
8685 (e.g. causing a stack to be taken every N dcache misses, or branch mispredicts etc)
8687 Note that the interface to these is machine global (That is when you set these you
8688 cause any session with the kernel PMCProfile keyword active to start emitting
8689 PMCCounterProf events for each ProfileSouce that is enabled.
8693 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.GetInfo">
8695 Returns a dictionary of keyed by name of ProfileSourceInfo structures for all the CPU counters available on the machine.
8698 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.Set(System.Int32,System.Int32)">
8700 Sets a single Profile Source (CPU machine counters) that will be used if PMC (Precise Machine Counters)
8701 are turned on. The profileSourceID is the ID field from the ProfileSourceInfo returned from 'GetInfo()'.
8702 and the profileSourceInterval is the interval between sampples (the number of events before a stack
8703 is recoreded. If you need more that one (the OS allows up to 4 I think), use the variation of this
8704 routine that takes two int[]. Calling this will clear all Profiler sources previously set (it is NOT
8708 <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.Set(System.Int32[],System.Int32[])">
8710 Sets the Profile Sources (CPU machine counters) that will be used if PMC (Precise Machine Counters)
8711 are turned on. Each CPU counter is given a id (the profileSourceID) and has an interval
8712 (the number of counts you skip for each event you log). You can get the human name for
8713 all the supported CPU counters by calling GetProfileSourceInfo. Then choose the ones you want
8714 and configure them here (the first array indicating the CPU counters to enable, and the second
8715 array indicating the interval. The second array can be shorter then the first, in which case
8716 the existing interval is used (it persists and has a default on boot).
8719 <member name="T:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo">
8721 Returned by GetProfileSourceInfo, describing the CPU counter (ProfileSource) available on the machine.
8724 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.Name">
8726 Human readable name of the CPU performance counter (eg BranchInstructions, TotalIssues ...)
8729 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.ID">
8731 The ID that can be passed to SetProfileSources
8734 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.Interval">
8736 This many events are skipped for each sample that is actually recorded
8739 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.MinInterval">
8741 The smallest Interval can be (typically 4K)
8744 <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.MaxInterval">
8746 The largest Interval can be (typically maxInt).
8749 <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions">
8751 These are options to EnableProvider
8754 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions.None">
8759 <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions.Stacks">
8761 Take a stack trace with the event
8764 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog">
8766 The data model for an Event trace log (ETL) file is simply a stream of events. More sophisticated
8767 analysis typically needs a a richer data model then ETL files can provide, and this is the
8768 motivation for the ETLX (Event Trace Log eXtended) file format. In particular any
8769 analysis that needs non-sequential access to the events or manipulates stack traces associated
8770 with events needs the additional support that the ETLX format provides. See the TraceEventProgrammers guide
8771 for more on the capabilities of ETLX.
8773 The TraceLog class is the programmatic representation of an ETLX file. It represents the ETLX file as a whole.
8775 ETLX files are typically created from ETL files using the TraceLog.OpenOrCreate method or more explicitly
8776 by the TraceLog.CreateFromEventTraceLogFile.
8780 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromEventTraceLogFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
8782 Given the path to an ETW trace log file (ETL) file, create an ETLX file for the data.
8783 <para>If etlxFilePath is null the output name is derived from etlFilePath by changing its file extension to .ETLX.</para>
8784 <returns>The name of the ETLX file that was generated.</returns>
8787 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OpenOrConvert(System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8789 Open an ETLX or ETL file as a ETLX file.
8791 This routine assumes that you follow normal conventions of naming ETL files with the .ETL file extension
8792 and ETLX files with the .ETLX file extension. It further assumes the ETLX file for a given ETL file
8793 should be in a file named the same as the ETL file with the file extension changed.
8795 etlOrEtlxFilePath can be either the name of the ETL or ETLX file. If the ETLX file does not
8796 exist or if it older than the corresponding ETL file then the ETLX file is regenerated with
8797 the given options. However if an up-to-date ETLX file exists the conversion step is skipped.
8799 Ultimately the ETLX file is opened and the resulting TraceLog instance is returned.
8803 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromTraceEventSession(Microsoft.Diagnostics.Tracing.Session.TraceEventSession)">
8805 From a TraceEventSession, create a real time TraceLog Event Source. Like a ETWTraceEventSource a TraceLogEventSource
8806 will deliver events in real time. However an TraceLogEventSource has an underlying Tracelog (which you can access with
8807 the .Log Property) which lets you get at aggregated information (Processes, threads, images loaded, and perhaps most
8808 importantly TraceEvent.CallStack() will work. Thus you can get real time stacks from events).
8810 Note that in order for native stacks to resolve symbolically, you need to have some Kernel events turned on (Image, and Process)
8811 and only windows 8 has a session that allows both kernel and user mode events simultaneously. Thus this is most useful
8815 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromLttngTextDataFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8817 Creates a ETLX file an Lttng Text file 'filePath'.
8820 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromEventPipeDataFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8822 Creates a ETLX file an EventPipe 'filePath'.
8825 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.#ctor(System.String)">
8827 Opens an existing Extended Trace Event log file (ETLX) file. See also TraceLog.OpenOrCreate.
8830 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Events">
8832 All the events in the ETLX file. The returned TraceEvents instance supports IEnumerable so it can be used
8833 in foreach statements, but it also supports other methods to further filter the evens before enumerating over them.
8835 Note that the TraceEvent returned from this IEnumerable may only be used for one iteration of the foreach.
8836 (it is reused for the next event). If you need more lifetime than that you must call Clone() (see 'Lifetime
8837 Constraints' in the programmers guide for more).
8840 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Processes">
8842 All the Processes that logged an event in the ETLX file. The returned TraceProcesses instance supports IEnumerable so it can be used
8843 in foreach statements, but it also supports other methods to select particular a particular process.
8846 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Threads">
8848 All the Threads that logged an event in the ETLX file. The returned TraceThreads instance supports IEnumerable so it can be used
8849 in foreach statements, but it also supports other methods to select particular thread.
8852 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ModuleFiles">
8854 All the module files (DLLs) that were loaded by some process in the ETLX file. The returned TraceModuleFiles instance supports IEnumerable so it can be used
8855 in foreach statements, but it also supports other methods to select particular module file.
8858 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CallStacks">
8860 All the call stacks in the ETLX file. Normally you don't enumerate over these, but use you use other methods on TraceCallStacks
8861 information about code addresses using CallStackIndexes.
8864 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CodeAddresses">
8866 All the code addresses in the ETLX file. Normally you don't enumerate over these, but use you use other methods on TraceCodeAddresses
8867 information about code addresses using CodeAddressIndexes.
8870 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Stats">
8872 Summary statistics on the events in the ETX file.
8875 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackForEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
8877 If the event has a call stack associated with it, retrieve it. Returns null if there is not call stack associated with the event.
8878 <para>If you are retrieving many call stacks consider using GetCallStackIndexForEvent, as it is more efficient.</para>
8881 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
8883 If the event has a call stack associated with it, retrieve CallStackIndex. Returns CallStackIndex.Invalid if there is not call stack associated with the event.
8886 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MaxEventIndex">
8888 Events are given an Index (ID) that are unique across the whole TraceLog. They are not guaranteed
8889 to be sequential, but they are guaranteed to be between 0 and MaxEventIndex. Ids can be used to
8890 allow clients to associate additional information with event (with a side lookup table). See
8891 TraceEvent.EventIndex and EventIndex for more
8894 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetEvent(Microsoft.Diagnostics.Tracing.EventIndex)">
8896 Given an eventIndex, get the event. This is relatively expensive because we need to create a
8897 copy of the event that will not be reused by the TraceLog. Ideally you would not use this API
8898 but rather use iterate over event using TraceEvents
8901 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EventCount">
8903 The total number of events in the log.
8906 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Size">
8908 The size of the log file in bytes.
8911 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EventsLost">
8916 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FilePath">
8918 The file path for the ETLX file associated with this TraceLog instance.
8921 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MachineName">
8923 The machine on which the log was collected. Returns empty string if unknown.
8926 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OSName">
8928 The name of the Operating system. Returns empty string if unknown.
8931 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OSBuild">
8933 The build number information for the OS. Returns empty string if unknown.
8936 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.BootTime">
8938 The time the machine was booted. Returns DateTime.MinValue if it is unknown.
8941 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.UTCOffsetMinutes">
8943 This is the number of minutes between the local time where the data was collected and UTC time.
8944 It is negative if your time zone is WEST of Greenwich. This DOES take Daylights savings time into account
8945 but might be a daylight savings time transition happens inside the trace.
8946 May be unknown, in which case it returns null.
8949 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.HasPdbInfo">
8951 When an ETL file is 'merged', for every DLL in the trace information is added that allows the symbol
8952 information (PDBS) to be identified unambiguously on a symbol server. This property returns true
8953 if the ETLX file was created from an ETL file with this added information.
8956 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MemorySizeMeg">
8958 The size of the main memory (RAM) on the collection machine. Will return 0 if memory size is unknown
8961 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.HasCallStacks">
8963 Are there any event in trace that has a call stack associated with it.
8966 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SampleProfileInterval">
8968 If Kernel CPU sampling events are turned on, CPU samples are taken at regular intervals (by default every MSec).
8969 <para>This property returns the time interval between samples.
8971 If the sampling interval was changed over the course of the trace, this property does not reflect that. It
8972 returns the first value it had in the trace.
8976 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CurrentMachineIsCollectionMachine">
8978 Returns true if the machine running this code is the same as the machine where the trace data was collected.
8980 If this returns false, the path names references in the trace cannot be inspected (since they are on a different machine).
8984 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Truncated">
8986 There is a size limit for ETLX files. Thus it is possible that the data from the original ETL file was truncated.
8987 This property returns true if this happened.
8990 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FirstTimeInversion">
8992 Returns the EvnetIndex (order in the file) of the first event that has a
8993 timestamp smaller than its predecessor. Returns Invalid if there are no time inversions.
8996 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Parsers">
8998 Returns all the TraceEventParsers associated with this log.
9001 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ToString">
9003 An XML fragment that gives useful summary information about the trace as a whole.
9006 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.#ctor(Microsoft.Diagnostics.Tracing.Session.TraceEventSession)">
9008 Create a new real time session called 'sessionName' and connect a TraceLog to it and return that TraceLog.
9009 Functionality of TraceLog that does not depend on either remembering past EVENTS or require future
9010 knowledge (e.g. stacks of kernel events), will 'just work'.
9013 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.RemoveAllButLastEntries``1(System.Collections.Generic.GrowableArray{``0}@,System.Int32)">
9015 Removes all but the last 'keepCount' entries in 'growableArray' by sliding them down.
9018 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.DispatchClonedEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
9020 Forwards an event that was saved (cloned) to the dispatcher associated with the real time source.
9023 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FlushRealTimeEvents(System.Object)">
9025 Flushes any event that has waited around long enough
9028 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCodeAddressIndexAtEvent(System.UInt64,Microsoft.Diagnostics.Tracing.TraceEvent)">
9030 Given a process's virtual address 'address' and an event which acts as a
9031 context (determines which process and what time in that process), return
9032 a CodeAddressIndex (which represents a particular location in a particular
9033 method in a particular DLL). It is possible that different addresses will
9034 go to the same code address for the same address (in different contexts).
9035 This is because DLLS where loaded in different places in different processes.
9038 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCodeAddressAtEvent(System.UInt64,Microsoft.Diagnostics.Tracing.TraceEvent)">
9040 If an event has a field of type 'Address' the address can be converted to a symbolic value (a
9041 TraceCodeAddress) by calling this function. C
9044 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForEventIndex(Microsoft.Diagnostics.Tracing.EventIndex)">
9046 Given an EventIndex for an event, retrieve the call stack associated with it
9047 (that can be given to TraceCallStacks). Many events may not have associated
9048 call stack in which case CallSTackIndex.Invalid is returned.
9051 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForCSwitchBlockingEventIndex(Microsoft.Diagnostics.Tracing.EventIndex)">
9053 Given a eventIndex for a CSWTICH event, return the call stack index for the thread
9054 that LOST the processor (the normal callStack is for the thread that GOT the CPU)
9057 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromTraceEventSource(Microsoft.Diagnostics.Tracing.TraceEventDispatcher,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
9059 Given a source of events 'source' generated a ETLX file representing these events from them. This
9060 file can then be opened with the TraceLog constructor. 'options' can be null.
9063 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
9065 SetupCallbacks installs all the needed callbacks for TraceLog Processing (stacks, process, thread, summaries etc)
9066 on the TraceEventSource rawEvents.
9069 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CopyRawEvents(Microsoft.Diagnostics.Tracing.TraceEventDispatcher,FastSerialization.IStreamWriter)">
9071 Copies the events from the 'rawEvents' dispatcher to the output stream 'IStreamWriter'. It
9072 also creates auxiliary data structures associated with the raw events (eg, processes, threads,
9073 modules, address lookup maps... Basically any information that needs to be determined by
9074 scanning over the events during TraceLog creation should hook in here.
9077 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AddAddressToCodeAddressMap(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64)">
9079 This is a helper routine that adds the address 'address' in the event 'data' to the map from events
9080 to this list of addresses.
9083 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GenerateMemInfoRecordsPerProcess(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData,FastSerialization.IStreamWriter)">
9085 Special logic to form MemInfoWSTraceData. We take the single event (which has
9086 The working sets for every process in the system, an split them out into N events
9087 each of which has the processID for the event set properly, and only has the
9088 information for that process. The first 3 processes in the list are -1, -2, and -3
9089 that have special meaning.
9092 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetIncompleteStackForStackEvent(Microsoft.Diagnostics.Tracing.TraceEvent,System.Int64)">
9094 Given just the stack event and the timestamp for the event the stack event is to attach to, find
9095 the IncompleteStack for the event. If the event to attach to cannot be this will return null
9096 but otherwise it will make an IncompleteStack entry if one does not already exist or it.
9098 As part of allocating an Incomplete stack, it will increment the stack counts for target event.
9101 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EmitStackOnExitFromKernel(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack@,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack)">
9103 Do the processing necessary to attach the user mode stack 'userModeStack' to any of the stacks in listOfIncompleteKernelStacks.
9104 It then clears this list. While doing this processing it will check to see if the target stack 'target' is in that list and
9105 it will return true if it was.
9108 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EmitStackOnExitFromKernel(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack@,System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack)">
9110 Do the processing necessary to attach the user mode stack 'userModeStack' to any of the stacks in listOfIncompleteKernelStacks.
9111 It then clears this list. While doing this processing it will check to see if the target stack 'target' is in that list and
9112 it will return true if it was.
9115 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.LogStackDefinition(Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData)">
9117 Called when we get a definition event (for either a user mode or kernel mode stack fragment).
9120 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack">
9122 Holds information about stacks associated with an event. This is a transient structure. We only need it
9123 until all the information is collected for a particular event, at which point we can create a
9124 CallStackIndex for the stack and eventsToStacks table.
9127 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.Clear">
9129 Clear clears entires that typically don't get set when we only have 1 frame fragment
9130 We can recycle the entries without setting these in that case.
9133 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.Initialize(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.EventIndex)">
9135 Clear all entries that can potentially change every time.
9138 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogKernelStackFragment(System.Void*,System.Int32,System.Int32,System.Int64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9140 Log the Kernel Stack fragment. We simply remember all the frames (converted to CodeAddressIndexes).
9143 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogKernelStackFragment(System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9145 Log the kernel stack fragment. Returns true if all the pieces of the stack fragment are collected
9146 (we don't have to log something on the thread).
9149 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogUserStackFragment(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9154 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.EmitStackForEventIfReady(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9156 Determine if 'stackInfo' is complete and if so emit it to the 'eventsToStacks' array. If 'force' is true
9157 then force what information there is out even if it is not complete (there is nothing else coming).
9159 Returns true if it was able to emit the stack
9162 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.IsDead">
9164 returns true if the IncompleteStack is dead (just waiting to be reused).
9167 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.BlockingEventIndex">
9169 We track the stacks for when CSwitches block, this is the CSWITCH event where that blocking happened.
9172 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CategorizeThread(Microsoft.Diagnostics.Tracing.TraceEvent,System.String,System.Boolean)">
9174 Put the thread that owns 'data' in to the category 'category.
9177 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ProcessExtendedData(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt16,Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts)">
9179 Process any extended data (like Win7 style stack traces) associated with 'data'
9180 returns true if the event should be considered a bookkeeping event.
9183 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Dispose(System.Boolean)">
9188 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SeekToTimeOnPage(FastSerialization.PinnedStreamReader,System.Int64,System.Int32,System.Int32@,FastSerialization.StreamLabel[])">
9190 Advance 'reader' until it point at a event that occurs on or after 'timeQPC'. on page
9191 'pageIndex'. If 'positions' is non-null, fill in that array. Also return the index in
9192 'positions' for the entry that was found.
9195 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AllocLookup">
9197 We need a TraceEventDispatcher in the Enumerators for TraceLog that know how to LOOKUP an event
9198 We don't actually dispatch through it. We do mutate the templates (to point a particular data
9199 record), but once we are done with it we can reuse this TraceEventDispatcher again an again
9200 (it is only concurrent access that is a problem). Thus we have an Allocate and Free pattern
9201 to reuse them in the common case of sequential access.
9205 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.cswitchBlockingEventsToStacks">
9207 The context switch event gives the stack of the thread GETTING the CPU, but it is also very useful
9208 to have this stack at the point of blocking. cswitchBlockingEventsToStacks gives this stack.
9211 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo">
9213 We need to remember the the EventIndexes of the events that were 'just before' this event so we can
9214 associate eventToStack traces with the event that actually caused them. PastEventInfo does this.
9217 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo.GetPreviousEventIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfoIndex,System.Int32,System.Boolean,Microsoft.Diagnostics.Tracing.EventIndex)">
9219 Returns the previous Event on the 'threadID'. Events with -1 thread IDs are also always returned.
9220 Returns PastEventInfoIndex.Invalid if there are not more events to consider.
9223 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo.GetBestEventForQPC(System.Int64,System.Int32,System.Int32)">
9225 Find the event event on thread threadID to the given QPC timestamp. If there is more than
9226 one event with the same QPC, we use thread and processor number to disambiguate.
9229 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AddStackToEvent(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
9231 Add a new entry that associates the stack 'stackIndex' with the event with index 'eventIndex'
9234 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource">
9236 Represents a source for a TraceLog file (or real time stream). It is basically a TraceEventDispatcher
9237 (TraceEventSource) but you can also get at the TraceLog for it as well.
9240 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.TraceLog">
9242 Returns the TraceLog associated with this TraceLogEventSource.
9245 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.CurrentEventIndex">
9247 Returns the event Index of the 'current' event (we post increment it so it is always one less)
9250 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.Process">
9255 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.EventsLost">
9260 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.Dispose(System.Boolean)">
9265 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats">
9267 TraceEventStats represents the summary statistics (counts) of all the events in the log.
9270 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.Count">
9272 The total number of distinct event types (there will be a TraceEventCounts for each distinct event Type)
9275 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.ToString">
9277 An XML representation of the TraceEventStats (for Debugging)
9280 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.GetEventCounts(Microsoft.Diagnostics.Tracing.TraceEvent)">
9282 Given an event 'data' look up the statistics for events that type.
9285 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts">
9287 TraceEventCount holds number of events (Counts) and the number of events with call stacks associated with them (StackCounts) for a particular event type.
9288 <para>It also has properties for looking up the event and provider names, but this information can only be complete if all the TraceEventParsers needed
9289 were associated with the TraceLog instance.
9293 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ProviderName">
9295 Returns a provider name for events in this TraceEventCounts. It may return a string with a GUID or even
9296 UnknownProvider for classic ETW if the event is unknown to the TraceLog.
9299 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.EventName">
9301 Returns a name for events in this TraceEventCounts. If the event is unknown to the Tracelog
9302 it will return EventID(XXX) (for manifest based events) or Task(XXX)/Opcode(XXX) (for classic events)
9305 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.PayloadNames">
9307 Returns the payload names associated with this Event type. Returns null if the payload names are unknown.
9310 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.IsClassic">
9312 Returns true the provider associated with this TraceEventCouts is a classic (not manifest based) ETW provider.
9315 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ProviderGuid">
9317 Returns the provider GUID of the events in this TraceEventCounts. Returns Guid.Empty if IsClassic
9320 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.EventID">
9322 Returns the event ID of the events in this TraceEventCounts. Returns TraceEventID.Illegal if IsClassic
9325 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.TaskGuid">
9327 Returns the Task GUID of the events in this TraceEventCounts. Returns Guid.Empty if not IsClassic
9330 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.Opcode">
9332 Returns the Opcode of the events in the TraceEventCounts. Returns TraceEventOpcode.Info if not IsClassic
9335 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.AveragePayloadSize">
9337 Returns the average size of the event specific payload data (not the whole event) for all events in the TraceEventsCounts.
9340 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.Count">
9342 Returns the number of events in the TraceEventCounts.
9345 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.StackCount">
9347 Returns the number of events in the TraceEventCounts that have stack traces associated with them.
9350 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.FullName">
9352 Returns the full name of the event (ProviderName/EventName)
9355 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ToString">
9357 An XML representation of the top level statistics of the TraceEventCounts.
9361 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.GetHashCode">
9366 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents">
9368 A TraceEvents represents a list of TraceEvent instances. It is IEnumerable<TraceEvent> but
9369 also has additional useful ways of filtering the list.
9371 Note that the TraceEvent returned from this IEnumerable may only be used for one iteration of the foreach.
9372 (it is reused for the next event). If you need more lifetime than that you must call Clone() (see 'Lifetime
9373 Constraints' in the programmers guide for more).
9376 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.ByEventType``1">
9378 Returns a list of events in the TraceEvents that return a payload of type T. Thus
9379 ByEventType < TraceEvent > returns all events.
9382 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.GetSource">
9384 Returns a TraceEventDispatcher (a push model object on which you can register
9385 callbacks for particular events) that will push all the vents in the TraceEvents.
9387 Note that the TraceEvent returned from this callback may only be used for the duration of the callback.
9388 If you need more lifetime than that you must call Clone() (see 'Lifetime Constraints' in the programmers guide for more).
9391 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Backwards">
9393 Returns a new list which is the same as the TraceEvents but the events are
9394 delivered from last to first. This allows you to search backwards in the
9398 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.FilterByTime(System.DateTime,System.DateTime)">
9400 Filter the events by time. Both starTime and endTime are inclusive.
9403 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.FilterByTime(System.Double,System.Double)">
9405 Filter the events by time. StartTimeRelativeMSec and endTimeRelativeMSec are relative to the SessionStartTime and are inclusive.
9408 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Filter(System.Predicate{Microsoft.Diagnostics.Tracing.TraceEvent})">
9410 Create new list of Events that has all the events in the current TraceEvents
9411 that pass the given predicate.
9414 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Log">
9416 Returns the TraceLog associated with the events in the TraceEvents
9419 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.StartTime">
9421 Returns a time that is guaranteed to be before the first event in the TraceEvents list.
9422 It is returned as DateTime
9425 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.StartTimeRelativeMSec">
9427 Returns a time that is guaranteed to be before the first event in the TraceEvents list.
9428 It is returned as floating point number of MSec since the start of the TraceLog
9431 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.EndTime">
9433 Returns a time that is guaranteed to be after the last event in the TraceEvents list.
9434 It is returned as DateTime
9437 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.EndTimeRelativeMSec">
9439 Returns a time that is guaranteed to be after the last event in the TraceEvents list.
9440 It is returned as floating point number of MSec since the start of the TraceLog
9443 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex">
9445 Each process is given a unique index from 0 to TraceProcesses.Count-1 and unlike
9446 the OS Process ID, is unambiguous (The OS process ID can be reused after a
9447 process dies). ProcessIndex represents this index. By using an enum rather than an int
9448 it allows stronger typing and reduces the potential for errors.
9450 It is expected that users of this library might keep arrays of size TraceProcesses.Count to store
9451 additional data associated with a process in the trace.
9455 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex.Invalid">
9457 Returned when no appropriate Process exists.
9460 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses">
9462 A TraceProcesses instance represents the list of processes in the Event log.
9464 TraceProcesses are IEnumerable, and will return the processes in order of creation time.
9467 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Log">
9469 The log associated with this collection of processes.
9472 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Count">
9474 The count of the number of TraceProcess instances in the TraceProcesses list.
9477 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Item(Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex)">
9479 Each process that occurs in the log is given a unique index (which unlike the PID is unique), that
9480 ranges from 0 to Count - 1. Return the TraceProcess for the given index.
9483 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.GetProcess(System.Int32,System.Double)">
9485 Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
9486 and whose process start time is less than 'timeRelativeMSec'.
9488 If 'timeRelativeMSec' is during the processes's lifetime this is guaranteed to be the correct process.
9489 for the given process ID since process IDs are unique during the lifetime of the process.
9491 If timeRelativeMSec == TraceLog.SessionDuration this method will return the last process with
9492 the given process ID, even if it had died during the trace.
9496 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.LastProcessWithID(System.Int32)">
9498 Returns the last process in the log with the given process ID. Useful when the logging session
9499 was stopped just after the processes completed (a common scenario).
9502 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.FirstProcessWithName(System.String,System.Double)">
9504 Find the first process in the trace that has the process name 'processName' and whose process
9505 start time is after the given point in time.
9506 <para>A process's name is the file name of the EXE without the extension.</para>
9507 <para>Processes that began before the trace started have a start time of 0, Thus
9508 specifying 0 for the time will include processes that began before the trace started.
9512 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.LastProcessWithName(System.String,System.Double)">
9514 Find the last process in the trace that has the process name 'processName' and whose process
9515 start time is after the given point in time.
9516 <para>A process's name is the file name of the EXE without the extension.</para>
9517 <para>Processes that began before the trace started have a start time of 0, Thus
9518 specifying 0 for the time will include processes that began before the trace started.
9522 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.ToString">
9524 An XML representation of the TraceEventProcesses (for debugging)
9527 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceProcess}#GetEnumerator">
9529 Enumerate all the processes that occurred in the trace log, ordered by creation time.
9532 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.GetProcess(System.Int32,System.Int64)">
9534 Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
9535 and whose offset start time is less than 'timeQPC'. If 'timeQPC' is during the thread's lifetime this
9536 is guaranteed to be the correct process. Using timeQPC = TraceLog.sessionEndTimeQPC will return the
9537 last process with the given PID, even if it had died.
9540 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9542 TraceProcesses represents the entire ETL moduleFile log. At the node level it is organized by threads.
9544 The TraceProcesses also is where we put various caches that are independent of the process involved.
9545 These include a cache for TraceModuleFile that represent native images that can be loaded into a
9546 process, as well as the process lookup tables and a cache that remembers the last calls to
9547 GetNameForAddress().
9550 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess">
9552 A TraceProcess represents a process in the trace.
9555 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ProcessID">
9557 The OS process ID associated with the process. It is NOT unique across the whole log. Use
9558 ProcessIndex for that.
9561 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ProcessIndex">
9563 The index into the logical array of TraceProcesses for this process. Unlike ProcessID (which
9564 may be reused after the process dies, the process index is unique in the log.
9567 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Name">
9569 This is a short name for the process. It is the image file name without the path or suffix.
9572 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.CommandLine">
9574 The command line that started the process (may be empty string if unknown)
9577 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ImageFileName">
9579 The path name of the EXE that started the process (may be empty string if unknown)
9582 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.StartTime">
9584 The time when the process started. Returns the time the trace started if the process existed when the trace started.
9587 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.StartTimeRelativeMsec">
9589 The time when the process started. Returns the time the trace started if the process existed when the trace started.
9590 Returned as the number of MSec from the beginning of the trace.
9593 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EndTime">
9595 The time when the process ended. Returns the time the trace ended if the process existed when the trace ended.
9596 Returned as a DateTime
9599 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EndTimeRelativeMsec">
9601 The time when the process ended. Returns the time the trace ended if the process existed when the trace ended.
9602 Returned as the number of MSec from the beginning of the trace.
9605 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ParentID">
9607 The process ID of the parent process
9610 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Parent">
9612 The process that started this process. Returns null if unknown Unlike ParentID
9613 the chain of Parent's will never form a loop.
9616 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ExitStatus">
9618 If the process exited, the exit status of the process. Otherwise null.
9621 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.CPUMSec">
9623 The amount of CPU time spent in this process based on the kernel CPU sampling events.
9626 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Is64Bit">
9628 Returns true if the process is a 64 bit process
9631 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Log">
9633 The log file associated with the process.
9636 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Threads">
9638 A list of all the threads that occurred in this process.
9641 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.LoadedModules">
9643 Returns the list of modules that were loaded by the process. The modules may be managed or
9644 native, and include native modules that were loaded event before the trace started.
9647 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EventsInProcess">
9649 Filters events to only those for a particular process.
9652 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EventsDuringProcess">
9654 Filters events to only that occurred during the time the process was alive.
9658 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ToString">
9660 An XML representation of the TraceEventProcess (for debugging)
9663 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.SetParentForProcess(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
9665 Sets the 'Parent' field for the process (based on the ParentID).
9667 sentinel is internal to the implementation, external callers should always pass null.
9668 TraceProcesses that have a parent==sentinel considered 'illegal' since it woudl form
9669 a loop in the parent chain, which we definately don't want.
9672 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.#ctor(System.Int32,Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex)">
9674 Create a new TraceProcess. It should only be done by log.CreateTraceProcess because
9675 only TraceLog is responsible for generating a new ProcessIndex which we need. 'processIndex'
9676 is a index that is unique for the whole log file (where as processID can be reused).
9679 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.codeAddressesInProcess">
9681 This table allows us to intern codeAddress so we only at most one distinct address per process.
9684 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.unresolvedCodeAddresses">
9686 We also keep track of those code addresses that are NOT yet resolved to at least a File (for JIT compiled
9687 things this would be to a method
9690 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.MethodLookupInfo">
9692 This is all the information needed to remember about at JIT compiled method (used in the jitMethods variable)
9695 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.jitMethods">
9697 This table has a entry for each JIT compiled method that remembers its range. It is actually only needed
9698 for the real time case, as the non-real time case you resolve code addresses on method unload/rundown and thus
9699 don't need to remember the information. This table is NOT persisted in the ETLX file since is only needed
9700 to convert raw addresses into TraceMethods.
9702 It is a array of arrays to make insertion efficient. Most of the time JIT methods will be added in
9703 contiguous memory (thus will be in order), however from time to time things will 'jump around' to a new
9704 segment. By having a list of lists, (which are in order in both lists) you can efficiently (log(N)) search
9708 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.scheduledActivityIdToActivityIndex">
9710 Maps a newly scheduled "user" activity ID to the ActivityIndex of the
9711 Activity. This keeps track of currently created/scheduled activities
9712 that have not started yet, and for multi-trigger events, created/scheduled
9713 activities that have not conclusively "died" (e.g. by having their "user"
9714 activity ID reused by another activity).
9717 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex">
9719 Each thread is given a unique index from 0 to TraceThreads.Count-1 and unlike
9720 the OS Thread ID, is unambiguous (The OS thread ID can be reused after a
9721 thread dies). ThreadIndex represents this index. By using an enum rather than an int
9722 it allows stronger typing and reduces the potential for errors.
9724 It is expected that users of this library might keep arrays of size TraceThreads.Count to store
9725 additional data associated with a process in the trace.
9729 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex.Invalid">
9731 Returned when no appropriate Thread exists.
9734 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads">
9736 A TraceThreads represents the list of threads in a process.
9739 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceThread}#GetEnumerator">
9741 Enumerate all the threads that occurred in the trace log. It does so in order of their thread
9742 offset events in the log.
9745 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.Count">
9747 The count of the number of TraceThreads in the trace log.
9750 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.Item(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
9752 Each thread that occurs in the log is given a unique index (which unlike the PID is unique), that
9753 ranges from 0 to Count - 1. Return the TraceThread for the given index.
9756 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.GetThread(System.Int32,System.Double)">
9758 Given an OS thread ID and a time, return the last TraceThread that has the same thread ID,
9759 and whose start time is less than 'timeRelativeMSec'. If 'timeRelativeMSec' is during the thread's lifetime this
9760 is guaranteed to be the correct thread.
9763 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.ToString">
9765 An XML representation of the TraceThreads (for debugging)
9768 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9770 TraceThreads represents the collection of threads in a process.
9774 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.GetOrCreateThread(System.Int32,System.Int64,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.Boolean)">
9776 Get the thread for threadID and timeQPC. Create if necessary. If 'isThreadCreateEvent' is true,
9777 then force the creation of a new thread EVEN if the thread exist since we KNOW it is a new thread
9778 (and somehow we missed the threadEnd event). Process is the process associated with the thread.
9779 It can be null if you really don't know the process ID. We will try to fill it in on another event
9780 where we DO know the process id (ThreadEnd event).
9783 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceThread">
9785 A TraceThread represents a thread of execution in a process.
9788 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadID">
9790 The OS process ID associated with the process.
9793 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadIndex">
9795 The index into the logical array of TraceThreads for this process. Unlike ThreadId (which
9796 may be reused after the thread dies) the T index is unique over the log.
9799 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.Process">
9801 The process associated with the thread.
9804 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.StartTime">
9806 The time when the thread started. Returns the time the trace started if the thread existed when the trace started.
9807 Returned as a DateTime
9810 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.StartTimeRelativeMSec">
9812 The time when the thread started. Returns the time the trace started if the thread existed when the trace started.
9813 Returned as the number of MSec from the beginning of the trace.
9816 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EndTime">
9818 The time when the thread ended. Returns the time the trace ended if the thread existed when the trace ended.
9819 Returned as a DateTime
9822 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EndTimeRelativeMSec">
9824 The time when the thread ended. Returns the time the trace ended if the thread existed when the trace ended.
9825 Returned as the number of MSec from the beginning of the trace.
9828 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.CPUMSec">
9830 The amount of CPU time spent on this thread based on the kernel CPU sampling events.
9833 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EventsInThread">
9835 Filters events to only those for a particular thread.
9838 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EventsDuringThread">
9840 Filters events to only those that occurred during the time a the thread was alive.
9843 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.GetActivityIndex(System.Double)">
9845 REturns the activity this thread was working on at the time instant 'relativeMsec'
9848 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.DefaultActivityIndex">
9850 Represents the "default" activity for the thread, the activity that no one has set
9853 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadInfo">
9855 ThreadInfo is a string that identifies the thread symbolically. (e.g. .NET Threadpool, .NET GC) It may return null if there is no useful symbolic name.
9858 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.VerboseThreadName">
9860 VerboseThreadName is a name for the thread including the ThreadInfo and the CPU time used.
9863 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.UserStackBase">
9865 The base of the thread's stack. This is just past highest address in memory that is part of the stack
9866 (we don't really know the lower bound (userStackLimit is this lower bound at the time the thread was created
9867 which is not very useful).
9870 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ToString">
9872 An XML representation of the TraceThread (for debugging)
9875 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.#ctor(System.Int32,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
9877 Create a new TraceProcess. It should only be done by log.CreateTraceProcess because
9878 only TraceLog is responsible for generating a new ProcessIndex which we need. 'processIndex'
9879 is a index that is unique for the whole log file (where as processID can be reused).
9882 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.activityIds">
9884 This is a list of the activities (snippet of threads) that have run on this
9885 thread. They are ordered by time so you can binary search for your activity based
9889 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.lastBlockingCSwitchEventIndex">
9891 We want to have the stack for when CSwtichs BLOCK as well as when they unblock.
9892 this variable keeps track of the last blocking CSWITCH on this thread so that we can
9893 compute this. It is only used during generation of a TraceLog file.
9896 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules">
9898 TraceLoadedModules represents the collection of modules (loaded DLLs or EXEs) in a
9902 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.Process">
9904 The process in which this Module is loaded.
9907 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetModuleContainingAddress(System.UInt64,System.Double)">
9909 Returns the module which was mapped into memory at at 'timeRelativeMSec' and includes the address 'address'
9910 <para> Note that Jit compiled code is placed into memory that is not associated with the module and thus will not
9911 be found by this method.
9915 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetLoadedModule(System.String,System.Double)">
9917 Returns the module representing the unmanaged load of a particular fiele at a given time.
9920 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.ToString">
9922 An XML representation of the TraceLoadedModules (for debugging)
9925 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetEnumerator">
9927 Returns all modules in the process. Note that managed modules may appear twice
9928 (once for the managed load and once for an unmanaged (LoadLibrary) load.
9931 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetLoadedModule(System.String,System.Int64)">
9933 This function will find the module associated with 'address' at 'timeQPC' however it will only
9934 find modules that are mapped in memory (module associated with JIT compiled methods will not be found).
9937 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.FindManagedModuleAndIndex(System.Int64,System.Int64,System.Int32@)">
9939 Finds the index and module for an a given managed module ID. If not found, new module
9940 should be inserted at index + 1;
9943 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.FindModuleAndIndexContainingAddress(System.UInt64,System.Int64,System.Int32@)">
9945 Finds the index and module for an address that lives within the image. If the module
9946 did not match the new entry should go at index+1.
9949 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule">
9951 A TraceLoadedModule represents a module (DLL or EXE) that was loaded into a process. It represents
9952 the time that this module was mapped into the processes address space.
9955 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ImageBase">
9957 The address where the DLL or EXE was loaded. Will return 0 for managed modules without NGEN images.
9960 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.LoadTime">
9962 The load time is the time the LoadLibrary was done if it was loaded from a file, otherwise is the
9963 time the CLR loaded the module. Expressed as a DateTime
9966 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.LoadTimeRelativeMSec">
9968 The load time is the time the LoadLibrary was done if it was loaded from a file, otherwise is the
9969 time the CLR loaded the module. Expressed as as MSec from the beginning of the trace.
9972 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.UnloadTime">
9974 The load time is the time the FreeLibrary was done if it was unmanaged, otherwise is the
9975 time the CLR unloaded the module. Expressed as a DateTime
9978 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.UnloadTimeRelativeMSec">
9980 The load time is the time the FreeLibrary was done if it was unmanaged, otherwise is the
9981 time the CLR unloaded the module. Expressed as MSec from the beginning of the trace.
9984 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.Process">
9986 The process that loaded this module
9989 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ModuleID">
9991 An ID that uniquely identifies the module in within the process. Works for both the managed and unmanaged case.
9994 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ModuleFile">
9996 If this managedModule was a file that was mapped into memory (eg LoadLibary), then ModuleFile points at
9997 it. If a managed module does not have a file associated with it, this can be null.
10000 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FilePath">
10002 Shortcut for ModuleFile.FilePath, but returns the empty string if ModuleFile is null
10005 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.Name">
10007 Shortcut for ModuleFile.Name, but returns the empty string if ModuleFile is null
10010 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ManagedModule">
10012 Because .NET applications have AppDomains, a module that is loaded once from a process
10013 perspective, might be loaded several times (once for each AppDomain) from a .NET perspective
10014 <para> This property returns the loadedModule record for the first such managed module
10015 load associated with this load.
10019 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ToString">
10021 An XML representation of the TraceLoadedModule (used for debugging)
10023 <returns></returns>
10025 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FastSerialization#IFastSerializable#ToStream(FastSerialization.Serializer)">
10027 See IFastSerializable.ToStream.
10030 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FastSerialization#IFastSerializable#FromStream(FastSerialization.Deserializer)">
10032 See IFastSerializable.FromStream.
10035 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule">
10037 A TraceManagedModule represents the loading of a .NET module into .NET AppDomain.
10038 It represents the time that that module an be used in the AppDomain.
10041 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.ModuleID">
10043 The module ID that the .NET Runtime uses to identify the file (module) associated with this managed module
10046 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.AssemblyID">
10048 The Assembly ID that the .NET Runtime uses to identify the assembly associated with this managed module.
10051 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.IsAppDomainNeutral">
10053 Returns true if the managed module was loaded AppDOmain Neutral (its code can be shared by all appdomains in the process.
10056 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.NativeModule">
10058 If the managed module is an IL module that has an NGEN image, return it.
10061 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.ToString">
10063 An XML representation of the TraceManagedModule (used for debugging)
10066 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex">
10068 CallStackIndex uniquely identifies a callstack within the log. Valid values are between 0 and
10069 TraceCallStacks.Count-1. Thus, an array can be used to 'attach' data to a call stack.
10072 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex.Invalid">
10074 Returned when no appropriate CallStack exists.
10077 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks">
10079 Call stacks are so common in most traces, that having a .NET object (a TraceEventCallStack) for
10080 each one is often too expensive. As optimization, TraceLog also assigns a call stack index
10081 to every call stack and this index uniquely identifies the call stack in a very light weight fashion.
10083 To be useful, however you need to be able to ask questions about a call stack index without creating
10084 a TraceEventCallStack. This is the primary purpose of a TraceCallStacks (accessible from TraceLog.CallStacks).
10086 methods that take a CallStackIndex and return properties of the call stack (like its caller or
10091 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Count">
10093 Returns the count of call stack indexes (all Call Stack indexes are strictly less than this).
10096 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.CodeAddressIndex(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10098 Given a call stack index, return the code address index representing the top most frame associated with it
10101 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Caller(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10103 Given a call stack index, look up the call stack index for caller. Returns CallStackIndex.Invalid at top of stack.
10106 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Depth(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10108 Given a call stack index, returns the number of callers for the call stack
10111 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Item(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10113 Given a call stack index, returns a TraceCallStack for it.
10116 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.CodeAddresses">
10118 Returns the TraceCodeAddresses instance that can resolve CodeAddressIndexes in the TraceLog
10121 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.ThreadIndex(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10123 Given a call stack index, returns the ThreadIndex which represents the thread for the call stack
10126 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Thread(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10128 Given a call stack index, returns the TraceThread which represents the thread for the call stack
10131 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.ToString">
10133 An XML representation of the TraceCallStacks (used for debugging)
10136 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.GetEnumerator">
10138 IEnumerable Support
10141 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.SetSize(System.Int32)">
10143 Used to 'undo' the effects of adding a eventToStack that you no longer want. This happens when we find
10144 out that a eventToStack is actually got more callers in it (when a eventToStack is split).
10146 <param name="origSize"></param>
10148 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.GetRootForThread(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
10150 Returns an index that represents the 'threads' of the stack. It encodes the thread which owns this stack into this.
10151 We encode this as -ThreadIndex - 2 (since -1 is the Invalid node)
10154 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack">
10156 A TraceCallStack is a structure that represents a call stack as a linked list. Each TraceCallStack
10157 contains two properties, the CodeAddress for the current frame, and the TraceCallStack of the
10158 caller of this frame. The Caller property will return null at the thread start frame.
10161 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.CallStackIndex">
10163 Return the CallStackIndex that uniquely identifies this call stack in the TraceLog.
10166 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.CodeAddress">
10168 Returns the TraceCodeAddress for the current method frame in the linked list of frames.
10171 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.Caller">
10173 The TraceCallStack for the caller of of the method represented by this call stack. Returns null at the end of the list.
10176 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.Depth">
10178 The depth (count of callers) of this call stack.
10181 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.ToString">
10183 An XML representation of the TraceCallStack (used for debugging)
10186 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.ToString(System.Text.StringBuilder)">
10188 Writes an XML representation of the TraceCallStack to the stringbuilder 'sb'
10191 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex">
10193 CodeAddressIndex uniquely identifies a symbolic codeAddress within the log .
10194 Valid values are between 0 and TraceCodeAddresses.Count. Thus, an array
10195 can be used to 'attach' data to a code address.
10198 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex.Invalid">
10200 Returned when no appropriate Method exists.
10203 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses">
10205 Code addresses are so common in most traces, that having a .NET object (a TraceCodeAddress) for
10206 each one is often too expensive. As optimization, TraceLog also assigns a code address index
10207 to every code address and this index uniquely identifies the code address in a very light weight fashion.
10209 To be useful, however you need to be able to ask questions about a code address index without creating
10210 a TraceCodeAddress. This is the primary purpose of a TraceCodeAddresses (accessible from TraceLog.CodeAddresses).
10212 methods that take a CodeAddressIndex and return properties of the code address (like its method, address, and module file)
10216 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ChunkSize">
10218 Chunk size for <see cref="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.codeAddressObjects"/>
10221 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Count">
10223 Returns the count of code address indexes (all code address indexes are strictly less than this).
10226 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Name(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10228 Given a code address index, return the name associated with it (the method name). It will
10229 have the form MODULE!METHODNAME. If the module name is unknown a ? is used, and if the
10230 method name is unknown a hexadecimal number is used as the method name.
10233 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Address(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10235 Given a code address index, returns the virtual address of the code in the process.
10238 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10240 Given a code address index, returns the index for the module file (representing the file's path)
10243 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.MethodIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10245 Given a code address index, returns the index for the method associated with the code address (it may return MethodIndex.Invalid
10246 if no method can be found).
10249 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFile(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10251 Given a code address index, returns the module file (the DLL paths) associated with it
10254 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ILOffset(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10256 If the code address is associated with managed code, return the IL offset within the method. If the method
10257 is unmanaged -1 is returned. To determine the IL offset the PDB for the NGEN image (for NGENed code) or the
10258 correct .NET events (for JIT compiled code) must be present. If this information is not present -1 is returned.
10261 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Item(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10263 Given a code address index, returns a TraceCodeAddress for it.
10266 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Methods">
10268 Returns the TraceMethods object that can look up information from MethodIndexes
10271 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFiles">
10273 Returns the TraceModuleFiles that can look up information about ModuleFileIndexes
10276 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ManagedMethodRecordCount">
10278 Indicates the number of managed method records that were encountered. This is useful to understand if symbolic information 'mostly works'.
10281 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.LookupSymbolsForModule(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile)">
10283 Initially CodeAddresses for unmanaged code will have no useful name. Calling LookupSymbolsForModule
10284 lets you resolve the symbols for a particular file so that the TraceCodeAddresses for that DLL
10285 will have Methods (useful names) associated with them.
10288 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetSourceLine(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10290 A TraceCodeAddress can contain a method name, but does not contain number information. To
10291 find line number information you must read the PDB again and fetch it. This is what
10292 GetSoruceLine does.
10294 Given a SymbolReader (which knows how to look up PDBs) and a code address index (which
10295 represent a particular point in execution), find a SourceLocation (which represents a
10296 particular line number in a particular source file associated with the code address.
10297 Returns null if anything goes wrong (and diagnostic information will be written to the
10298 log file associated with the SymbolReader.
10302 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.TotalCodeAddresses">
10304 The number of times a particular code address appears in the log. Unlike TraceCodeAddresses.Count, which tries
10305 to share a code address as much as possible, TotalCodeAddresses counts the same code address in different
10306 call stacks (and even if in the same stack) as distinct. This makes TotalCodeAddresses a better measure of
10307 the 'popularity' of a particular address (which can factor into decisions about whether to call LookupSymbolsForModule)
10309 The sum of ModuleFile.CodeAddressesInModule for all modules should sum to this number.
10313 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.UnsafePDBMatching">
10315 If set to true, will only use the name of the module and not the PDB GUID to confirm that a PDB is correct
10316 for a given DLL. Setting this value is dangerous because it is easy for the PDB to be for a different
10317 version of the DLL and thus give inaccurate method names. Nevertheless, if a log file has no PDB GUID
10318 information associated with it, unsafe PDB matching is the only way to get at least some symbolic information.
10321 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ToString">
10323 Returns an XML representation of the TraceCodeAddresses (for debugging)
10326 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.NativeMap(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10328 We expose ILToNativeMap internally so we can do diagnostics.
10331 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetEnumerator">
10333 IEnumerable support.
10336 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.AddMethod(Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadVerboseTraceData)">
10338 Called when JIT CLR Rundown events are processed. It will look if there is any
10339 address that falls into the range of the JIT compiled method and if so log the
10340 symbolic information (otherwise we simply ignore it)
10343 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.AddMethod(Microsoft.Diagnostics.Tracing.Parsers.JScript.MethodLoadUnloadJSTraceData,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Etlx.JavaScriptSourceKey,System.String})">
10345 Adds a JScript method
10348 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ForAllUnresolvedCodeAddressesInRange(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64,System.Int32,System.Boolean,Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ForAllCodeAddrAction)">
10350 Allows you to get a callback for each code address that is in the range from start to
10351 start+length within the process 'process'. If 'considerResolved' is true' then the address range
10352 is considered resolved and future calls to this routine will not find the addresses (since they are resolved).
10355 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetOrCreateCodeAddressIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64)">
10357 Gets the symbolic information entry for 'address' which can be any address. If it falls in the
10358 range of a symbol, then that symbolic information is returned. Regardless of whether symbolic
10359 information is found, however, an entry is created for it, so every unique address has an entry
10363 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ProcessForAddress(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64)">
10365 All processes might have kernel addresses in them, this returns the kernel process (process ID == 0) if 'address' is a kernel address.
10368 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetSortedCodeAddressIndexes">
10370 Sort from lowest address to highest address.
10373 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.LookupSymbols(Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
10375 Do symbol resolution for all addresses in the log file.
10378 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.OpenPdbForModuleFile(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile)">
10380 Look up the SymbolModule (open PDB) for a given moduleFile. Will generate NGEN pdbs as needed.
10383 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.TraceModuleUnchanged(Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile,System.IO.TextWriter)">
10385 Returns true if 'moduleFile' seems to be unchanged from the time the information about it
10386 was generated. Logs messages to 'log' if it fails.
10389 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo">
10391 A CodeAddressInfo is the actual data stored in the ETLX file that represents a
10392 TraceCodeAddress. It knows its Address in the process and it knows the
10393 TraceModuleFile (which knows its base address), so it also knows its relative
10394 address in the TraceModuleFile (which is what is needed to look up the value
10397 Note that by the time that the CodeAddressInfo is persisted in the ETLX file
10398 it no longer knows the process it originated from (thus separate processes
10399 with the same address and same DLL file loaded at the same address can share
10400 the same CodeAddressInfo. This is actually reasonably common, since OS tend
10401 to load at their preferred base address.
10403 We also have to handle the managed case, in which case the CodeAddressInfo may
10404 also know about the TraceMethod or the ILMapIndex (which remembers both the
10405 method and the line numbers for managed code.
10407 However when the CodeAddressInfo is first created, we don't know the TraceModuleFile
10408 so we also need to remember the Process
10412 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetProcessIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10414 This is only valid until MethodIndex or ModuleFileIndex is set.
10417 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetMethodIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10419 Only for managed code.
10422 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10424 Only for unmanaged code. TODO, this can be folded into methodOrProcessIlMap index and save a DWORD.
10425 since if the method or IlMap is present then you can get the ModuelFile index from there.
10428 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.InclusiveCount">
10430 This is a count of how many times this code address appears in any stack in the trace.
10431 It is a measure of what popular the code address is (whether we should look up its symbols).
10434 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.FindAndRemove(System.Int64,Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ILMapIndex@)">
10436 Find the ILToNativeMap for 'methodId' in process associated with 'processIndex'
10437 and then remove it from the table (this is what you want to do when the method is unloaded)
10440 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress">
10442 Conceptually a TraceCodeAddress represents a particular point of execution within a particular
10443 line of code in some source code. As a practical matter, they are represented two ways
10444 depending on whether the code is managed or not.
10445 <para>* For native code (or NGened code), it is represented as a virtual address along with the loaded native
10446 module that includes that address along with its load address. A code address does NOT
10447 know its process because they can be shared among all processes that load a particular module
10448 at a particular location. These code addresses will not have methods associated with them
10449 unless symbols information (PDBS) are loaded for the module using the LookupSymbolsForModule.
10451 <para> * For JIT compiled managed code, the address in a process is eagerly resolved into a method, module
10452 and an IL offset and that is stored in the TraceCodeAddress.
10454 <para> Sometimes it is impossible to even determine the module associated with a virtual
10455 address in a process. These are represented as simply the virtual address.
10458 Because code addresses are so numerous, consider using CodeAddressIndex instead of TraceCodeAddress
10459 to represent a code address. Methods on TraceLog.CodeAddresses can access all the information
10460 that would be in a TraceCodeAddress from a CodeAddressIndex without the overhead of creating
10461 a TraceCodeAddress object.
10465 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.CodeAddressIndex">
10467 The CodeAddressIndex that uniquely identifies the same code address as this TraceCodeAddress
10470 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.Address">
10472 The Virtual address of the code address in the process. (Note that the process is unknown by the code address to allow for sharing)
10475 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.FullMethodName">
10477 The full name (Namespace name.class name.method name) of the method associated with this code address.
10478 Returns the empty string if no method is associated with the code address.
10481 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.Method">
10483 Returns the TraceMethod associated with this code address or null if there is none.
10486 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ILOffset">
10488 If the TraceCodeAddress is associated with managed code, return the IL offset within the method. If the method
10489 is unmanaged -1 is returned. To determine the IL offset the PDB for the NGEN image (for NGENed code) or the
10490 correct .NET events (for JIT compiled code) must be present. If this information is not present -1 is returned.
10493 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.GetSourceLine(Microsoft.Diagnostics.Symbols.SymbolReader)">
10495 A TraceCodeAddress can contain a method name, but does not contain number information. To
10496 find line number information you must read the PDB again and fetch it. This is what
10497 GetSoruceLine does.
10499 Given a SymbolReader (which knows how to look up PDBs) find a SourceLocation (which represents a
10500 particular line number in a particular source file associated with the current TraceCodeAddress.
10501 Returns null if anything goes wrong (and diagnostic information will be written to the
10502 log file associated with the SymbolReader.
10506 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleFile">
10508 Returns the TraceModuleFile representing the DLL path associated with this code address (or null if not known)
10511 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleName">
10513 ModuleName is the name of the file without path or extension.
10516 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleFilePath">
10518 The full path name of the DLL associated with this code address. Returns empty string if not known.
10521 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.CodeAddresses">
10523 The CodeAddresses container that this Code Address lives within
10526 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ToString">
10528 An XML representation for the CodeAddress (for debugging)
10531 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ToString(System.Text.StringBuilder)">
10533 Writes an XML representation for the CodeAddress to the stringbuilder sb
10536 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.MethodIndex">
10538 MethodIndex uniquely identifies a method within the log. Valid values are between 0 and
10539 TraceMethods.Count-1. Thus, an array can be used to 'attach' data to a method.
10542 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.MethodIndex.Invalid">
10544 Returned when no appropriate Method exists.
10547 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods">
10549 Methods are so common in most traces, that having a .NET object (a TraceMethod) for
10550 each one is often too expensive. As optimization, TraceLog also assigns a method index
10551 to every method and this index uniquely identifies the method in a very light weight fashion.
10553 To be useful, however you need to be able to ask questions about a method index without creating
10554 a TraceMethod. This is the primary purpose of a TraceMethods (accessible from TraceLog.CodeAddresses.Methods).
10556 methods that take a MethodIndex and return properties of the method (like its name, and module file)
10560 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.Count">
10562 Returns the count of method indexes. All MethodIndexes are strictly less than this.
10565 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodToken(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10567 Given a method index, if the method is managed return the IL meta data MethodToken (returns 0 for native code)
10570 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodRva(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10572 Given a method index, return the Method's RVA (offset from the base of the DLL in memory) (returns 0 for managed code)
10575 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10577 Given a method index, return the index for the ModuleFile associated with the Method Index.
10580 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.FullMethodName(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10582 Given a method index, return the Full method name (Namespace.ClassName.MethodName) associated with the Method Index.
10585 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.Item(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10587 Given a method index, return a TraceMethod that also represents the method.
10590 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.ToString">
10592 Returns an XML representation of the TraceMethods.
10595 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.GetEnumerator">
10597 IEnumerable support
10599 <returns></returns>
10601 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod">
10603 A TraceMethod represents the symbolic information for a particular method. To maximizes haring a TraceMethod
10604 has very little state, just the module and full method name.
10607 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodIndex">
10609 Each Method in the TraceLog is given an index that uniquely identifies it. This return this index for this TraceMethod
10612 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.FullMethodName">
10614 The full name of the method (Namespace.ClassName.MethodName).
10617 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodToken">
10619 .Net runtime methods have a token (32 bit number) that uniquely identifies it in the meta data of the managed DLL.
10620 This property returns this token. Returns 0 for unmanaged code or method not found.
10623 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodRva">
10625 For native code the RVA (relative virtual address, which is the offset from the base of the file in memory)
10626 for the method in the file. Returns 0 for managed code or method not found;
10629 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodModuleFileIndex">
10631 Returns the index for the DLL ModuleFile (which represents its file path) associated with this method
10634 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodModuleFile">
10636 Returns the ModuleFile (which represents its file path) associated with this method
10639 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.ToString">
10641 A XML representation of the TraceMethod. (Used for debugging)
10643 <returns></returns>
10645 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.ToString(System.Text.StringBuilder)">
10647 Writes an XML representation of the TraceMethod to the stringbuilder 'sb'
10649 <param name="sb"></param>
10650 <returns></returns>
10652 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.PrefixOptimizationTier(System.String,Microsoft.Diagnostics.Tracing.Parsers.Clr.OptimizationTier)">
10654 Returns a new string prefixed with the optimization tier if it would be useful. Typically used to adorn a method's
10655 name with the optimization tier of the specific code version of the method.
10658 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex">
10660 A ModuleFileIndex represents a particular file path on the disk. It is a number
10661 from 0 to MaxModuleFileIndex, which means that you can create a side array to hold
10662 information about module files.
10664 You can look up information about the ModuleFile from the ModuleFiles type.
10667 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex.Invalid">
10669 Returned when no appropriate ModuleFile exists.
10672 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles">
10674 TraceModuleFiles is the list of all the ModuleFiles in the trace. It is an IEnumerable.
10677 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Count">
10679 Each file is given an index for quick lookup. Count is the
10680 maximum such index (thus you can create an array that is 1-1 with the
10684 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Item(Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex)">
10686 Given a ModuleFileIndex, find the TraceModuleFile which also represents it
10689 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Log">
10691 Returns the TraceLog associated with this TraceModuleFiles
10694 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.ToString">
10696 Returns an XML representation of the TraceModuleFiles
10699 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceModuleFile}#GetEnumerator">
10701 Enumerate all the files that occurred in the trace log.
10704 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.GetOrCreateModuleFile(System.String,System.UInt64)">
10706 We cache information about a native image load in a TraceModuleFile. Retrieve or create a new
10707 cache entry associated with 'nativePath' and 'moduleImageBase'. 'moduleImageBase' can be 0 for managed assemblies
10708 that were not loaded with LoadLibrary.
10711 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.GetModuleFile(System.String,System.UInt64)">
10713 For a given file name, get the TraceModuleFile associated with it.
10716 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile">
10718 The TraceModuleFile represents a executable file that can be loaded into memory (either an EXE or a
10719 DLL). It represents the path on disk as well as the location in memory where it loads (or
10720 its ModuleID if it is a managed module), but not the load or unload time or the process in which
10721 it was loaded (this allows them to be shared within the trace).
10724 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ModuleFileIndex">
10726 The ModuleFileIndex ID that uniquely identifies this module file.
10729 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.FilePath">
10731 The moduleFile name associated with the moduleFile. May be the empty string if the moduleFile has no moduleFile
10732 (dynamically generated). For managed code, this is the IL moduleFile name.
10735 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.Name">
10737 This is the short name of the moduleFile (moduleFile name without extension).
10740 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageBase">
10742 Returns the address in memory where the dll was loaded.
10745 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageSize">
10747 Returns the size of the DLL when loaded in memory
10750 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageEnd">
10752 Returns the address just past the memory the module uses.
10755 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbName">
10757 The name of the symbol file (PDB file) associated with the DLL
10760 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbSignature">
10762 Returns the GUID that uniquely identifies the symbol file (PDB file) for this DLL
10765 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbAge">
10767 Returns the age (which is a small integer), that is also needed to look up the symbol file (PDB file) on a symbol server.
10770 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.FileVersion">
10772 Returns the file version string that is optionally embedded in the DLL's resources. Returns the empty string if not present.
10775 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ProductName">
10777 Returns the product name recorded in the file version information. Returns empty string if not present
10780 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ProductVersion">
10782 Returns a version string for the product as a whole (could include GIT source code hash). Returns empty string if not present
10785 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageChecksum">
10787 This is the checksum value in the PE header. Can be used to validate
10788 that the file on disk is the same as the file from the trace.
10791 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageId">
10793 This used to be called TimeDateStamp, but linkers may not use it as a
10794 timestamp anymore because they want deterministic builds. It still is
10795 useful as a unique ID for the image.
10798 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.IsReadyToRun">
10800 Tells if the module file is ReadyToRun (the has precompiled code for some managed methods)
10803 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.GitCommitHash">
10805 If the Product Version fields has a GIT Commit Hash component, this returns it, Otherwise it is empty.
10808 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.BuildTime">
10810 Returns the time the DLL was built as a DateTime. Note that this may not
10811 work if the build system uses deterministic builds (in which case timestamps
10812 are not allowed. We may not be able to tell if this is a bad timestamp
10813 but we include it because when it is timestamp it is useful.
10816 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.CodeAddressesInModule">
10818 The number of code addresses included in this module. This is useful for determining if
10819 this module is worth having its symbolic information looked up or not. It is not
10820 otherwise a particularly interesting metric.
10822 This number is defined as the number of appearances this module has in any stack
10823 or any event with a code address (If the modules appears 5 times in a stack that
10824 counts as 5 even though it is just one event's stack).
10828 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ManagedModule">
10830 If the module file was a managed native image, this is the IL file associated with it.
10833 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ToString">
10835 Returns an XML representation of the TraceModuleFile (for debugging)
10838 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex">
10840 A ActivityIndex uniquely identifies an Activity in the log. Valid values are between
10841 0 and Activities.Count-1.
10844 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex.Invalid">
10846 valid activity indexes are non-negative integers
10849 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity">
10851 Representation of an Activity. An activity can be thought of as a unit of execution associated with
10852 a task or workitem; it executes on one thread, and has a start and end time. An activity keeps track
10853 of its "creator" or "caller" -- which is the activity that scheduled it. Using the "creator" link a
10854 user can determine the chain of activities that led up to the current one.
10856 Given an event you can get the Activity for the event using the Activity() extension method.
10859 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind">
10861 Describes the kinds of known Activities (used for descriptive purposes alone)
10864 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Invalid">
10865 <summary>Invalid</summary>
10867 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Initial">
10869 Default activity on a thread (when the thread does not execute any code on
10870 behalf of anyone else)
10873 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskScheduled">
10875 An activity that was initiated by a Task.Run
10878 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskStarted">
10880 An activity that's a task, but for which we didn't see a "Scheduled" event
10883 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.AwaitTaskScheduled">
10885 An activity that allows correlation between the antecedent and continuation
10888 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrThreadStart">
10889 <summary>A thread started with Thread.Start</summary>
10891 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrThreadPool">
10892 <summary>Native CLR threadpool workitem</summary>
10894 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrIOThreadPool">
10895 <summary>Native CLR IO threadpool workitem</summary>
10897 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxThreadPool">
10898 <summary>Managed threadpool workitem</summary>
10900 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxTransfer">
10901 <summary>Generic managed thread transfer</summary>
10903 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxAsyncIO">
10904 <summary>Managed async IO workitem</summary>
10906 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxWinRTDispatch">
10907 <summary>WinRT Dispatched workitem</summary>
10909 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Implied">
10911 Used when we make up ones because we know that have to be there but we don't know enough to do more than that.
10914 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskWait">
10916 An activity that allows correlation between the antecedent and continuation
10917 if have bit 5 set it means you auto-compete
10920 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskWaitSynchronous">
10922 Same as TaskWait, hwoever it auto-completes
10925 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxTimer">
10927 Managed timer workitem
10930 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Index">
10931 <summary>A trace-wide unique id identifying an activity</summary>
10933 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Creator">
10934 <summary>The activity that initiated or caused the current one</summary>
10936 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ID">
10938 This return an unique string 'name' for the activity. It is a the Index followed by
10939 a - followed by the TPL index (if available). It is a bit nicer since it gives
10940 more information for debugging.
10943 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Path">
10945 Computes the creator path back to root.
10948 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Thread">
10949 <summary>The thread on which the activity is running</summary>
10951 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.MultiTrigger">
10952 <summary>True if there may be multiple activities that were initiated by caller (e.g. managed Timers)</summary>
10954 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Name">
10955 <summary>A descriptive label for the activity
10956 TODO: eliminate and use ToString()?
10959 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.IsThreadActivity">
10961 A thread activity is the activity associate with an OS thread. It is special because it may
10962 have a region that is disjoint.
10965 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.StartTimeRelativeMSec">
10966 <summary>Time from beginning of trace (in msec) when activity started executing</summary>
10968 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.EndTimeRelativeMSec">
10969 <summary>Time from beginning of trace (in msec) when activity completed execution. Does not include children.</summary>
10971 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationEventIndex">
10972 <summary>The event index of the TraceEvent instance that created/scheduled this activity</summary>
10974 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationCallStackIndex">
10975 <summary>The call stack index of the TraceEvent instance that scheduled (caused the creation of) the activity</summary>
10977 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationTimeRelativeMSec">
10978 <summary>Time from beginning of trace (in msec) when activity was scheduled</summary>
10980 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ToString">
10982 To use mainly for debugging
10985 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions">
10987 TraceLogOptions control the generation of a TraceLog (ETLX file) from an ETL file.
10990 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.#ctor">
10992 Creates a new object containing options for constructing a TraceLog file.
10995 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ShouldResolveSymbols">
10997 If non-null, this is a predicate that, given a file path to a dll, answers the question
10998 whether the PDB associated with that DLL be looked up and its symbolic information added
10999 to the TraceLog file as part of conversion. Symbols can be looked up afterward when
11000 the file is later opened, so the default (which is to look up no symbols during
11001 conversion) is typically OK.
11004 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.LocalSymbolsOnly">
11006 Resolving symbols from a symbol server can take a long time. If
11007 there is a DLL that always fails, it can be quite annoying because
11008 it will always cause delays, By specifying only local symbols it
11009 will only resolve the symbols if it can do so without the delay of network traffic.
11010 Symbols that have been previously cached locally from a symbol
11011 server count as local symbols.
11014 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.AlwaysResolveSymbols">
11016 By default symbols are only resolved if there are stacks associated with the trace.
11017 Setting this option forces resolution even if there are no stacks.
11020 <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ConversionLog">
11022 Writes status to this log. Useful for debugging symbol issues.
11025 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ConversionLogName">
11027 If ConversionLogName is set, it indicates that any messages associated with creating the TraceLog should be written here.
11030 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.KeepAllEvents">
11032 ETL files typically contain a large number of 'bookkeeping' event for resolving names of files, or methods or to indicate information
11033 about processes that existed when the trace was started (DCStart and DCStop events). By default these events are stripped from
11034 the ETLX file because their information has already been used to do the bookkeeping as part of the conversion
11036 However sometimes it is useful to keep these events (typically for debugging TraceEvent itself) and setting this
11037 property to true will cause every event in the ETL file to be copied as an event to the ETLX file.
11041 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.MaxEventCount">
11043 Sometimes ETL files are too big , and you just want to look at a fraction of it to speed things up
11044 (or to keep file size under control). The MaxEventCount property allows that. 10M will produce a 3-4GB ETLX file.
11045 1M is a good value to keep ETLX file size under control. Note that that the conversion still scan the entire
11046 original ETL file too look for bookkeeping events, however MaxEventCount events will be transfered to the ETLX
11049 The default is 10M because ETLX has a restriction of 4GB in size.
11053 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.SkipMSec">
11055 If an ETL file has too many events for efficient processing the first part of the trace can be skipped by setting this
11056 property. Any event which happens before 'SkipMSec' into the session will be filtered out. This property is
11057 intended to be used along with the MaxEventCount property to carve out a arbitrary chunk of time from an ETL
11058 file as it is converted to an ETLX file.
11061 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.OnLostEvents">
11063 If this delegate is non-null, it is called if there are any lost events or if the file was truncated.
11064 It is passed a bool whether the ETLX file was truncated, as well as the number of lost events and the
11065 total number of events in the ETLX file. You can throw if you want to abort.
11068 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ExplicitManifestDir">
11070 If you have the manifests for particular providers, you can read them in explicitly by setting this directory.
11071 All files of the form *.manifest.xml will be read into the DynamicTraceEventParser's database before conversion
11075 <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ContinueOnError">
11077 If errors occur during conversion, just assume the traced ended at that point and continue.
11080 <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions">
11082 The TraceEvent instances returned during the processing of a TraceLog have additional capabilities that these extension methods can access.
11085 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Process(Microsoft.Diagnostics.Tracing.TraceEvent)">
11087 Finds the TraceProcess associated with a TraceEvent.
11088 Guaranteed to be non-null for non-real-time sessions if the process ID is != -1
11091 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Thread(Microsoft.Diagnostics.Tracing.TraceEvent)">
11093 Finds the TraceThread associated with a TraceEvent.
11094 Guaranteed to be non-null for non-real-time sessions if the process ID is != -1
11097 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Log(Microsoft.Diagnostics.Tracing.TraceEvent)">
11099 Finds the TraceLog associated with a TraceEvent.
11102 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStack(Microsoft.Diagnostics.Tracing.TraceEvent)">
11104 Finds the TraceCallStack associated with a TraceEvent. Returns null if the event does not have callstack.
11107 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStackIndex(Microsoft.Diagnostics.Tracing.TraceEvent)">
11109 Finds the CallStack index associated with a TraceEvent. Returns Invalid if the event does not have callstack.
11112 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.BlockingStack(Microsoft.Diagnostics.Tracing.Parsers.Kernel.CSwitchTraceData)">
11114 Finds the CallStack index associated the blocking thread for CSwitch event
11117 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStacks(Microsoft.Diagnostics.Tracing.TraceEvent)">
11119 Finds the TraceCallStacks associated with a TraceEvent.
11122 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Activity(Microsoft.Diagnostics.Tracing.TraceEvent)">
11124 Finds the Activity associated with a TraceEvent
11127 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ActivityIndex(Microsoft.Diagnostics.Tracing.TraceEvent)">
11129 Finds the ActivityIndex associated with a TraceEvent
11132 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ProgramCounterAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData)">
11134 For a PageFaultTraceData event, gets the TraceCodeAddress associated with the ProgramCounter address.
11137 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ProgramCounterAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData)">
11139 For a PageFaultTraceData event, gets the CodeAddressIndex associated with the ProgramCounter address.
11142 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData)">
11144 For a SampledProfileTraceData event, gets the TraceCodeAddress associated with the InstructionPointer address.
11147 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData)">
11149 For a SampledProfileTraceData event, gets the CodeAddressIndex associated with the InstructionPointer address.
11152 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.SysCallAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SysCallEnterTraceData)">
11154 For a SysCallEnterTraceData event, gets the CodeAddressIndex associated with the SysCallAddress address.
11157 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData)">
11159 For a PMCCounterProfTraceData event, gets the TraceCodeAddress associated with the InstructionPointer address.
11162 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData)">
11164 For a PMCCounterProfTraceData event, gets the CodeAddressIndex associated with the InstructionPointer address.
11167 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.RoutineCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.ISRTraceData)">
11169 For a ISRTraceData event, gets the CodeAddressIndex associated with the Routine address.
11172 <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.RoutineCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.DPCTraceData)">
11174 For a DPCTraceData event, gets the CodeAddressIndex associated with the Routine address.
11177 <member name="T:Microsoft.Diagnostics.Tracing.TraceLoggingEventId">
11179 TraceLoggingEvnetId is a class that manages assigning event IDs (small 64k numbers)
11180 to TraceLogging Style events (which don't have them). Because TraceEvent uses EventIDs
11181 so fundamentally this deficiency is very problematic.
11183 Arguably this should have been done by the ETW system itself.
11185 You use it by calling TestForTraceLoggingEventAndFixupIfNeeded on eventRecords.
11186 You also have to explicitly call 'Dispose' when you are done with this class.
11189 <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.TestForTraceLoggingEventAndFixupIfNeeded(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
11191 Checks to see if eventRecord has TraceLogging meta data associated with it (EVENT_HEADER_EXT_TYPE_EVENT_SCHEMA_TL)
11192 and if so updates EventHeader.Id to be an event ID unique to that provider/opcode/meta-data blob.
11195 <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.Dispose">
11197 cleans up native memory allocated by this routine.
11200 <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.TestForTraceLoggingEventAndFixupIfNeededHelper(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
11202 Checks to see if this event has TraceLogging meta data associated with it (EVENT_HEADER_EXT_TYPE_EVENT_SCHEMA_TL)
11203 and if so updates EventHeader.Id to be an event ID unique to that provider/opcode/meta-data blob.
11206 <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.GetEventIDForTraceLoggingEvent(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*,Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_HEADER_EXTENDED_DATA_ITEM*)">
11208 given that 'eventRecord' is a TraceLogging event (with meta-data 'metaData'), return a eventID that is unique
11209 to that provider/opcode/meta-data blob.
11212 <member name="T:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.ProviderMetaDataKey">
11214 ProviderMetaDataKey is what we use to look up TraceLogging meta-data. It is
11215 basically just GUID (representing the provider) an opcode (start/stop) and
11216 a blob (representing the TraceLogging meta-data for an event) that knows how to
11217 compare itself so it can be a key to a hash table.
11220 <member name="T:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1">
11222 A HistoryDictionary is designed to look up 'handles' (pointer sized quantities), that might get reused
11223 over time (eg Process IDs, thread IDs). Thus it takes a handle AND A TIME, and finds the value
11224 associated with that handle at that time.
11227 <member name="M:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1.Add(System.UInt64,System.Int64,`0,System.Boolean)">
11229 Adds the association that 'id' has the value 'value' from 'startTime100ns' ONWARD until
11230 it is supersede by the same id being added with a time that is after this. Thus if
11231 I did Add(58, 1000, MyValue1), and add(58, 500, MyValue2) 'TryGetValue(58, 750, out val) will return
11232 MyValue2 (since that value is 'in force' between time 500 and 1000.
11235 <member name="M:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1.Remove(System.UInt64)">
11237 Remove all entries associated with a given key (over all time).
11240 <member name="T:Microsoft.Diagnostics.Tracing.ZippedETLWriter">
11242 ZippedETLWriter is a helper class used to compress ETW data (ETL files)
11243 along with symbolic information (e.g. NGEN pdbs), as well as other optional
11244 metadata (e.g. collection log files), into a single archive ready for
11245 transfer to another machine.
11248 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.#ctor(System.String,System.IO.TextWriter)">
11250 Declares the intent to write a new ZIP archive that will
11251 contain ETW file 'etlFilePath' in it as well as symbolic information (NGEN
11252 pdbs) and possibly other information. log is a Text stream to send detailed
11255 This routine assumes by default (unless Merge is set to false) that the ETL
11256 file needs to be merged before it is archived. It will also generate all
11257 the NGEN pdbs needed for the archive.
11260 You must call the WriteArchive method before any operations actually happen.
11261 Up to that point is is just remembering instructions for WriteArchive to
11266 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.ZipArchivePath">
11268 This is the name of the output archive. By default is the same as the ETL file name
11269 with a .zip' suffix added (thus it will typically be .etl.zip).
11272 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Log">
11274 If set this is where messages about progress and detailed error information goes.
11275 While you dont; have to set this, it is a good idea to do so.
11278 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.AddFile(System.String,System.String)">
11280 By default ZippedETL file will zip the ETL file itself and the NGEN pdbs associated with it.
11281 You can add additional files to the archive by calling AddFile. In specififed 'archivePath'
11282 is the path in the archive and defaults to just the file name of the original file path.
11285 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.WriteArchive(System.IO.Compression.CompressionLevel)">
11287 Actually do the work specified by the ZippedETLWriter constructors and other methods.
11290 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.SymbolReader">
11292 This is the symbol reader that is used to generate the NGEN Pdbs as needed
11293 If it is not specififed one is created on the fly.
11296 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Merge">
11298 By default the ETL file is merged before being added to the archive. If
11299 this is not necessary, you can set this to false.
11302 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.CompressETL">
11304 Uses a compressed format for the ETL file. Normally off.
11307 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.NGenSymbolFiles">
11309 By default the symbol files (PDBs) are included in the ZIP file. If this
11310 is not desired for whatever reason, this property can be set to false.
11313 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.LowPriority">
11315 Do the work at low priority so as to avoid impacting the system.
11318 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Zip">
11320 Normally WriteArchive creates a ZIP archive. However it is possible that you only wish
11321 to do the merging and NGEN symbol generation. Setting this property to false
11322 will supress the final ZIP operation.
11325 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.DeleteInputFile">
11327 Normally if you ZIP you will delete the original ETL file. Setting this to false overrides this.
11330 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.GetNGenPdbs(System.String,Microsoft.Diagnostics.Symbols.SymbolReader,System.IO.TextWriter)">
11332 Returns the list of path names to the NGEN pdbs for any NGEN image in 'etlFile' that has
11336 <member name="T:Microsoft.Diagnostics.Tracing.ZippedETLReader">
11338 ZippedETLReader is a helper class that unpacks the ZIP files generated
11339 by the ZippedETLWriter class. It can be smart about placing the
11340 symbolic information in these files on the SymbolReader's path so that
11341 symbolic lookup 'just works'.
11344 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLReader.#ctor(System.String,System.IO.TextWriter)">
11346 Declares the intent to unzip an .ETL.ZIP file that contain an compressed ETL file
11347 (and NGEN pdbs) from the archive at 'zipFilePath'. If present, messages about
11348 the unpacking go to 'log'. Note that this unpacking only happens when the
11349 UnpackArchive() method is called.
11352 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.Log">
11354 If set messages about unpacking go here.
11357 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.EtlFileName">
11359 The name of the ETL file to extract (it is an error if there is not exactly 1).
11360 If not present it is derived by changing the extension of the zip archive.
11363 <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.SymbolDirectory">
11365 Where to put the symbols.
11368 <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLReader.UnpackArchive">
11370 After setting any properties to override default behavior, calling this method
11371 will actually do the unpacking.
11374 <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule">
11376 A NativeSymbolModule represents symbol information for a native code module.
11377 NativeSymbolModules can potentially represent Managed modules (which is why it is a subclass of that interface).
11379 NativeSymbolModule should just be the CONTRACT for Native Symbols (some subclass implements
11380 it for a particular format like Windows PDBs), however today because we have only one file format we
11381 simply implement Windows PDBS here. This can be factored out of this class when we
11382 support other formats (e.g. Dwarf).
11384 To implmente support for Windows PDBs we use the Debug Interface Access (DIA). See
11385 http://msdn.microsoft.com/library/x93ctkx8.aspx for more. I have only exposed what
11386 I need, and the interface is quite large (and not super pretty).
11389 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetTypeForHeapAllocationSite(System.UInt32)">
11391 Returns the name of the type allocated for a given relative virtual address.
11392 Returns null if the given rva does not match a known heap allocation site.
11395 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.FindNameForRva(System.UInt32)">
11397 Finds a (method) symbolic name for a given relative virtual address of some code.
11398 Returns an empty string if a name could not be found.
11401 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.FindNameForRva(System.UInt32,System.UInt32@)">
11403 Finds a (method) symbolic name for a given relative virtual address of some code.
11404 Returns an empty string if a name could not be found.
11405 symbolStartRva is set to the start of the symbol start
11408 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForRva(System.UInt32)">
11410 Fetches the source location (line number and file), given the relative virtual address (RVA)
11411 of the location in the executable.
11414 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForRva(System.UInt32,System.String@,System.UInt32@,System.Int32@)">
11416 This overload of SourceLocationForRva like the one that takes only an RVA will return a source location
11417 if it can. However this version has additional support for NGEN images. In the case of NGEN images
11418 for .NET V4.6.1 or later), the NGEN images can't convert all the way back to a source location, but they
11419 can convert the RVA back to IL artifacts (ilAssemblyName, methodMetadataToken, iloffset). THese can then
11420 be used to look up the source line using the IL PDB.
11422 Thus if the return value from this is null, check to see if the ilAssemblyName is non-null, and if not
11423 you can look up the source location using that information.
11426 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForManagedCode(System.UInt32,System.Int32)">
11428 Managed code is shipped as IL, so RVA to NATIVE mapping can't be placed in the PDB. Instead
11429 what is placed in the PDB is a mapping from a method's meta-data token and IL offset to source
11430 line number. Thus if you have a metadata token and IL offset, you can again get a source location
11433 <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GlobalSymbol">
11435 The symbol representing the module as a whole. All global symbols are children of this symbol
11438 <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.PdbGuid">
11440 The a unique identifier that is used to relate the DLL and its PDB.
11443 <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.PdbAge">
11445 Along with the PdbGuid, there is a small integer
11446 call the age is also used to find the PDB (it represents the different
11447 post link transformations the DLL has undergone).
11450 <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile">
11452 A source file represents a source file from a PDB. This is not just a string
11453 because the file has a build time path, a checksum, and it needs to be 'smart'
11454 to copy down the file if requested.
11456 TODO We don't need this subclass. We can have SourceFile simply a container
11457 that holds the BuildTimePath, hashType and hashValue. The lookup of the
11458 source can then be put on NativeSymbolModule and called from SourceFile generically.
11459 This makes the different symbol files more simmilar and is a nice simplification.
11462 <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.Url">
11464 If the source file is directly available on the web (that is there is a Url that
11465 can be used to fetch it with HTTP Get), then return that Url. If no such publishing
11466 point exists this property will return null.
11469 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.GetSourceFromSrcServer">
11471 Try to fetch the source file associated with 'buildTimeFilePath' from the symbol server
11472 information from the PDB from 'pdbPath'. Will return a path to the returned file (uses
11473 SourceCacheDirectory associated symbol reader for context where to put the file),
11474 or null if unsuccessful.
11476 There is a tool called pdbstr associated with srcsrv that basically does this.
11477 pdbstr -r -s:srcsrv -p:PDBPATH
11482 There is a variables section and a files section
11484 The file section is a list of items separated by *. The first is the path, the rest are up to you
11486 You form a command by using the SRCSRVTRG variable and substituting variables %var1 where var1 is the first item in the * separated list
11487 There are special operators %fnfile%(XXX), etc that manipulate the string XXX (get file name, translate \ to / ...
11489 If what is at the end is a valid URL it is looked up.
11492 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.GetSourceServerTargetAndCommand(System.String@,System.String@,System.String)">
11494 Parse the 'srcsrv' stream in a PDB file and return the target for SourceFile
11495 represented by the 'this' pointer. This target is iether a ULR or a local file
11498 You can dump the srcsrv stream using a tool called pdbstr
11499 pdbstr -r -s:srcsrv -p:PDBPATH
11501 The target in this stream is called SRCSRVTRG and there is another variable SRCSRVCMD
11502 which represents the command to run to fetch the soruce into SRCSRVTRG
11504 To form the target, the stream expect you to private a %targ% variable which is a directory
11505 prefix to tell where to put the source file being fetched. If the source file is
11506 available via a URL this variable is not needed.
11508 ********* This is a typical example of what is in a PDB with source server information.
11509 SRCSRV: ini ------------------------------------------------
11512 VERCTRL=Team Foundation Server
11513 DATETIME=Thu Mar 10 16:15:55 2016
11514 SRCSRV: variables ------------------------------------------
11515 TFS_EXTRACT_CMD=tf.exe view /version:%var4% /noprompt "$%var3%" /server:%fnvar%(%var2%) /output:%srcsrvtrg%
11516 TFS_EXTRACT_TARGET=%targ%\%var2%%fnbksl%(%var3%)\%var4%\%fnfile%(%var1%)
11517 VSTFDEVDIV_DEVDIV2=http://vstfdevdiv.redmond.corp.microsoft.com:8080/DevDiv2
11519 SRCSRVERRDESC=access
11521 SRCSRVTRG=%TFS_extract_target%
11522 SRCSRVCMD=%TFS_extract_cmd%
11523 SRCSRV: source files --------------------------------- ------
11524 f:\dd\externalapis\legacy\vctools\vc12\inc\cvconst.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/cvconst.h*1363200
11525 f:\dd\externalapis\legacy\vctools\vc12\inc\cvinfo.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/cvinfo.h*1363200
11526 f:\dd\externalapis\legacy\vctools\vc12\inc\vc\ammintrin.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/vc/ammintrin.h*1363200
11527 SRCSRV: end ------------------------------------------------
11529 ********* And here is a more modern one where the source code is available via a URL.
11530 SRCSRV: ini ------------------------------------------------
11534 SRCSRV: variables ------------------------------------------
11535 SRCSRVTRG=https://nuget.smbsrc.net/src/%fnfile%(%var1%)/%var2%/%fnfile%(%var1%)
11538 SRCSRV: source files ---------------------------------------
11539 c:\Users\rafalkrynski\Documents\Visual Studio 2012\Projects\DavidSymbolSourceTest\DavidSymbolSourceTest\Demo.cs*SQPvxWBMtvANyCp8Pd3OjoZEUgpKvjDVIY1WbaiFPMw=
11540 SRCSRV: end ------------------------------------------------
11543 <param name="target">returns the target source file path</param>
11544 <param name="command">returns the command to fetch the target source file</param>
11545 <param name="localDirectoryToPlaceSourceFiles">Specify the value for %targ% variable. This is the
11546 directory where source files can be fetched to. Typically the returned file is under this directory
11547 If the value is null, %targ% variable be emtpy. This assumes that the resulting file is something
11548 that does not need to be copied to the machine (either a URL or a file that already exists)</param>
11550 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.FindTfExe">
11552 Returns the location of the tf.exe executable or
11554 <returns></returns>
11556 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetSrcSrvStream">
11558 Gets the 'srcsvc' data stream from the PDB and return it in as a string. Returns null if it is not present.
11560 There is a tool called pdbstr associated with srcsrv that basically does this.
11561 pdbstr -r -s:srcsrv -p:PDBPATH
11565 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetMergedAssembliesMap">
11567 For Project N modules it returns the list of pre merged IL assemblies and the corresponding mapping.
11570 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetEmbeddedILImage">
11572 For ProjectN modules, gets the merged IL image embedded in the .PDB (only valid for single-file compilation)
11575 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetPseudoAssembly">
11577 For ProjectN modules, gets the pseudo-assembly embedded in the .PDB, if there is one.
11579 <returns></returns>
11581 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetFuncMDTokenMap">
11583 For ProjectN modules, gets the binary blob that describes the mapping from RVAs to methods.
11586 <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetTypeMDTokenMap">
11588 For ProjectN modules, gets the binary blob that describes the mapping from RVAs to types.
11590 <returns></returns>
11592 <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule.HeapAllocationTypeInfo">
11594 This static class contains the GetTypeName method for retrieving the type name of
11595 a heap allocation site.
11597 See https://github.com/KirillOsenkov/Dia2Dump/blob/master/PrintSymbol.cpp for more details
11600 <member name="T:Microsoft.Diagnostics.Symbols.Symbol">
11602 Represents a single symbol in a PDB file.
11605 <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Name">
11607 The name for the symbol
11610 <member name="P:Microsoft.Diagnostics.Symbols.Symbol.RVA">
11612 The relative virtual address (offset from the image base when loaded in memory) of the symbol
11615 <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Length">
11617 The length of the memory that the symbol represents.
11620 <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Id">
11622 A small integer identifier tat is unique for that symbol in the DLL.
11625 <member name="P:Microsoft.Diagnostics.Symbols.Symbol.UndecoratedName">
11627 Decorated names are names that most closely resemble the source code (have overloading).
11628 However when the linker does not directly support all the expressiveness of the
11629 source language names are encoded to represent this. This return this encoded name.
11632 <member name="M:Microsoft.Diagnostics.Symbols.Symbol.InSameSection(Microsoft.Diagnostics.Symbols.Symbol,Microsoft.Diagnostics.Symbols.Symbol)">
11634 Returns true if the two symbols live in the same linker section (e.g. text, data ...)
11637 <member name="M:Microsoft.Diagnostics.Symbols.Symbol.GetChildren">
11639 Returns the children of the symbol. Will return null if there are no children.
11642 <member name="M:Microsoft.Diagnostics.Symbols.Symbol.GetChildren(Dia2Lib.SymTagEnum)">
11644 Returns the children of the symbol, with the given tag. Will return null if there are no children.
11647 <member name="M:Microsoft.Diagnostics.Symbols.Symbol.CompareTo(Microsoft.Diagnostics.Symbols.Symbol)">
11649 Compares the symbol by their relative virtual address (RVA)
11652 <member name="M:Microsoft.Diagnostics.Symbols.Symbol.ToString">
11657 <member name="T:Microsoft.Diagnostics.Symbols.SymbolPath">
11659 SymPath is a class that knows how to parse _NT_SYMBOL_PATH syntax.
11662 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.SymbolPathFromEnvironment">
11664 This allows you to set the _NT_SYMBOL_PATH as a from the windows environment.
11667 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.CleanSymbolPath">
11669 This 'cleans up' a symbol path. In particular
11670 Empty ones are replaced with good defaults (symweb or msdl)
11671 All symbol server specs have local caches (%Temp%\SymbolCache if nothing else is specified).
11673 Note that this routine does NOT update _NT_SYMBOL_PATH.
11676 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.MicrosoftSymbolServerPath">
11678 Returns the string representing a symbol path for the 'standard' Microsoft symbol servers.
11679 This returns the public msdl.microsoft.com server if outside Microsoft.
11682 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.#ctor">
11684 Create an empty symbol path
11687 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.#ctor(System.String)">
11689 Create a symbol that represents 'path' (the standard semicolon separated list of locations)
11692 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.Elements">
11694 Returns the List of elements in the symbol path.
11697 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Add(System.String)">
11699 Append all the elements in the semicolon separated list, 'path', to the symbol path represented by 'this'.
11700 returns the 'this' pointer
11703 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Add(Microsoft.Diagnostics.Symbols.SymbolPathElement)">
11705 append a new symbol path element to the beginning of the symbol path represented by 'this'.
11706 returns the 'this' pointer
11709 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Insert(System.String)">
11711 insert all the elements in the semicolon separated list, 'path' to the beginning of the symbol path represented by 'this'.
11712 returns the 'this' pointer
11715 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Insert(Microsoft.Diagnostics.Symbols.SymbolPathElement)">
11717 insert a new symbol path element to the beginning of the symbol path represented by 'this'.
11718 returns the 'this' pointer
11721 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.DefaultSymbolCache(System.Boolean)">
11723 If you need to cache files locally, put them here. It is defined
11724 to be the first local path of a SRV* qualification or %TEMP%\SymbolCache
11728 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.InsureHasCache(System.String)">
11730 People can use symbol servers without a local cache. This is bad, add one if necessary.
11733 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.LocalOnly">
11735 Removes all references to remote paths. This insures that network issues don't cause grief.
11738 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.CacheFirst">
11740 Create a new symbol path which first search all machine local locations (either explicit location or symbol server cache locations)
11741 followed by all non-local symbol server. This produces better behavior (If you can find it locally it will be fast)
11744 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ToString">
11746 Returns the string representation (semicolon separated) for the symbol path.
11748 <returns></returns>
11750 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ToXml(System.IO.TextWriter,System.String)">
11752 Writes an XML representation of the symbol path to 'writer'
11755 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ComputerNameExists(System.String,System.Int32)">
11757 Checks to see 'computerName' exists (there is a Domain Names Service (DNS) reply to it)
11758 This routine times out relative quickly (after 700 msec) if there is a problem reaching
11759 the computer, and returns false.
11762 <member name="F:Microsoft.Diagnostics.Symbols.SymbolPath.s_MicrosoftSymbolServerPath">
11764 This is the backing field for the lazily-computed <see cref="P:Microsoft.Diagnostics.Symbols.SymbolPath.MicrosoftSymbolServerPath"/> property.
11767 <member name="T:Microsoft.Diagnostics.Symbols.SymbolPathElement">
11769 SymPathElement represents the text between the semicolons in a symbol path. It can be a symbol server specification or a simple directory path.
11771 SymPathElement follows functional conventions. After construction everything is read-only.
11774 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.IsSymServer">
11776 Returns true if this element of the symbol server path a symbol server specification
11779 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.Cache">
11781 Returns the local cache for a symbol server specification. returns null if not specified
11784 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.Target">
11786 Returns location to look for symbols. This is either a directory specification or an URL (for symbol servers)
11787 This can be null if it is not specified (for cache-only paths).
11790 <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.IsRemote">
11792 IsRemote returns true if it looks like the target is not on the local machine.
11795 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.ToString">
11797 Returns the string repsentation for the symbol server path element (e.g. SRV*c:\temp*\\symbols\symbols)
11800 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.Equals(System.Object)">
11802 Implements object interface
11805 <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.GetHashCode">
11807 Implements object interface
11810 <member name="T:Microsoft.Diagnostics.Symbols.SymbolReader">
11812 A symbol reader represents something that can FIND pdbs (either on a symbol server or via a symbol path)
11813 Its job is to find a full path a PDB. Then you can use OpenSymbolFile to get a SymbolReaderModule and do more.
11816 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.#ctor(System.IO.TextWriter,System.String)">
11818 Opens a new SymbolReader. All diagnostics messages about symbol lookup go to 'log'.
11821 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindSymbolFilePathForModule(System.String,System.Boolean)">
11823 Finds the symbol file for 'exeFilePath' that exists on the current machine (we open
11824 it to find the needed info). Uses the SymbolReader.SymbolPath (including Symbol servers) to
11825 look up the PDB, and will download the PDB to the local cache if necessary. It will also
11826 generate NGEN pdbs into the local symbol cache unless SymbolReaderFlags.NoNGenPDB is set.
11828 By default for NGEN images it returns the NGEN pdb. However if 'ilPDB' is true it returns
11831 Returns null if the pdb can't be found.
11834 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindSymbolFilePath(System.String,System.Guid,System.Int32,System.String,System.String,System.Boolean)">
11836 Find the complete PDB path, given just the simple name (filename + pdb extension) as well as its 'signature',
11837 which uniquely identifies it (on symbol servers). Uses the SymbolReader.SymbolPath (including Symbol servers) to
11838 look up the PDB, and will download the PDB to the local cache if necessary.
11840 A Guid of Empty, means 'unknown' and will match the first PDB that matches simple name. Thus it is unsafe.
11842 Returns null if the PDB could not be found
11844 <param name="pdbFileName">The name of the PDB file (we only use the file name part)</param>
11845 <param name="pdbIndexGuid">The GUID that is embedded in the DLL in the debug information that allows matching the DLL and the PDB</param>
11846 <param name="pdbIndexAge">Tools like BBT transform a DLL into another DLL (with the same GUID) the 'pdbAge' is a small integers
11847 that indicates how many transformations were done</param>
11848 <param name="dllFilePath">If you know the path to the DLL for this pdb add it here. That way we can probe next to the DLL
11849 for the PDB file.</param>
11850 <param name="fileVersion">This is an optional string that identifies the file version (the 'Version' resource information.
11851 It is used only to provided better error messages for the log.</param>
11853 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindExecutableFilePath(System.String,System.Int32,System.Int32,System.Boolean)">
11855 This API looks up an executable file, by its build-timestamp and size (on a symbol server), 'fileName' should be
11856 a simple name (no directory), and you need the buildTimeStamp and sizeOfImage that are found in the PE header.
11858 Returns null if it cannot find anything.
11861 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.OpenSymbolFile(System.String)">
11863 Given the path name to a particular PDB file, load it so that you can resolve symbols in it.
11865 <param name="pdbFilePath">The name of the PDB file to open.</param>
11866 <returns>The SymbolReaderModule that represents the information in the symbol file (PDB)</returns>
11868 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.OpenNativeSymbolFile(System.String)">
11870 Like OpenSymbolFile, which opens a PDB, but this version will fail (return null)
11871 if it is not WindowsSymbolModule. It is a shortcut for OpenSymbolFile as NativeSymbolModule
11874 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SymbolPath">
11876 The symbol path used to look up PDB symbol files. Set when the reader is initialized.
11879 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SourcePath">
11881 The paths used to look up source files. defaults to _NT_SOURCE_PATH.
11884 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SymbolCacheDirectory">
11886 Where symbols are downloaded if needed. Derived from symbol path. It is the first
11887 directory on the local machine in a SRV*DIR*LOC spec, and %TEMP%\SymbolCache otherwise.
11890 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.AuthorizationHeaderForSourceLink">
11892 Authorization header to be ued when making requests to source server (only for SourceLink)
11895 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SourceCacheDirectory">
11897 The place where source is downloaded from a source server.
11900 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.Options">
11902 Is this symbol reader limited to just the local machine cache or not?
11905 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SecurityCheck">
11907 We call back on this when we find a PDB by probing in 'unsafe' locations (like next to the EXE or in the Built location)
11908 If this function returns true, we assume that it is OK to use the PDB.
11911 <member name="E:Microsoft.Diagnostics.Symbols.SymbolReader.OnSymbolFileFound">
11913 If set OnSymbolFileFound will be called when a PDB file is found.
11914 It is passed the complete local file path, the PDB Guid (may be Guid.Empty) and PDB age.
11917 <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.Log">
11919 A place to log additional messages
11922 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GenerateNGenSymbolsForModule(System.String,System.String)">
11924 Given a full filename path to an NGEN image, insure that there is an NGEN image for it
11925 in the symbol cache. If one already exists, this method simply returns that. If not
11926 it is generated and placed in the symbol cache. When generating the PDB this routine
11927 attempt to resolve line numbers, which DOES require looking up the PDB for the IL image.
11928 Thus routine may do network accesses (to download IL PDBs).
11930 Note that FindSymbolFilePathForModule calls this, so normally you don't need to call
11931 this method directly.
11933 By default it places the PDB in the SymbolCacheDirectory using normal symbol server
11934 cache conventions (PDBNAME\Guid-AGE\Name). You can override this by specifying
11935 the outputDirectory parameter.
11937 <returns>The full path name of the PDB generated for the NGEN image.</returns>
11940 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.HandleNetCorePdbs(System.String,System.String)">
11942 Given a NGEN (or ReadyToRun) imge 'ngenImageFullPath' and the PDB path
11943 that we WANT it to generate generate the PDB. Returns either pdbPath
11944 on success or null on failure.
11946 TODO can be removed when we properly publish the NGEN pdbs as part of build.
11949 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.Dispose">
11951 Called when you are done with the symbol reader.
11952 Closes all opened symbol files.
11955 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.PdbMatches(System.String,System.Guid,System.Int32,System.Boolean)">
11957 Returns true if 'filePath' exists and is a PDB that has pdbGuid and pdbAge.
11958 if pdbGuid == Guid.Empty, then the pdbGuid and pdbAge checks are skipped.
11961 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetPhysicalFileFromServer(System.String,System.String,System.String,System.Predicate{System.String})">
11963 Fetches a file from the server 'serverPath' with pdb signature path 'pdbSigPath' (concatinate them with a / or \ separator
11964 to form a complete URL or path name). It will place the file in 'fullDestPath' It will return true if successful
11965 If 'contentTypeFilter is present, this predicate is called with the URL content type (e.g. application/octet-stream)
11966 and if it returns false, it fails. This insures that things that are the wrong content type (e.g. redirects to
11967 some sort of login) fail cleanly.
11969 You should probably be using GetFileFromServer
11971 <param name="serverPath">path to server (e.g. \\symbols\symbols or http://symweb) </param>
11972 <param name="pdbIndexPath">pdb path with signature (e.g clr.pdb/1E18F3E494DC464B943EA90F23E256432/clr.pdb)</param>
11973 <param name="fullDestPath">the full path of where to put the file locally </param>
11974 <param name="contentTypeFilter">if present this allows you to filter out urls that dont match this ContentType.</param>
11976 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.BuildFullUri(System.String,System.String)">
11978 Build the full uri from server path and pdb index path
11981 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.CopyStreamToFile(System.IO.Stream,System.String,System.String,System.Boolean@)">
11983 This just copies a stream to a file path with logging.
11986 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetFileFromServer(System.String,System.String,System.String)">
11988 Looks up 'fileIndexPath' on the server 'urlForServer' (concatenate to form complete URL) copying the file to
11989 'targetPath' and returning targetPath name there (thus it is always a local file). Unlike GetPhysicalFileFromServer,
11990 GetFileFromServer understands how to deal with compressed files and file.ptr (redirection).
11992 <returns>targetPath or null if the file cannot be found.</returns>
11994 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetClrDirectoryForNGenImage(System.String,System.IO.TextWriter,System.String@)">
11996 Deduce the path to where CLR.dll (and in particular NGEN.exe live for the NGEN image 'ngenImagepath')
11997 Returns null if it can't be found. If the NGEN image is associated with a private runtime return
11998 that value in 'privateVerStr'
12001 <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.BypassSystem32FileRedirection(System.String)">
12003 We may be a 32 bit app which has File system redirection turned on
12004 Morph System32 to SysNative in that case to bypass file system redirection
12007 <member name="T:Microsoft.Diagnostics.Symbols.ManagedSymbolModule">
12009 A SymbolModule represents a file that contains symbolic information
12010 (a Windows PDB or Portable PDB). This is the interface that is independent
12011 of what kind of symbolic file format you use. Becase portable PDBs only
12012 support managed code, this shared interface is by necessity the interface
12013 for managed code only (currently only Windows PDBs support native code).
12016 <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.ExePath">
12018 This is the EXE associated with the Pdb. It may be null or an invalid path. It is used
12019 to help look up source code (it is implicitly part of the Source Path search)
12022 <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SymbolFilePath">
12024 The path name to the PDB itself. Might be empty if the symbol information is in memory.
12027 <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.PdbGuid">
12029 The Guid that is used to uniquely identify the DLL-PDB pair (used for symbol servers)
12032 <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SymbolReader">
12034 Fetches the SymbolReader assoicated with this SymbolModule. This is where shared
12035 attributes (like SourcePath, SymbolPath etc) are found.
12038 <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SourceLocationForManagedCode(System.UInt32,System.Int32)">
12040 Given a method and an IL offset, return a source location (line number and file).
12041 Returns null if it could not find it.
12044 <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.GetSourceLinkJson">
12046 If the symbol file format supports SourceLink JSON this routine should be overriden
12050 <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.GetUrlForFilePathUsingSourceLink(System.String)">
12052 Return a URL for 'buildTimeFilePath' using the source link mapping (that 'GetSourceLinkJson' fetched)
12053 Returns null if there is URL using the SourceLink
12055 <param name="buildTimeFilePath"></param>
12056 <returns></returns>
12058 <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.ParseSourceLinkJson(System.String)">
12060 Parses SourceLink information and returns a list of filepath -> url Prefix tuples.
12063 <member name="T:Microsoft.Diagnostics.Symbols.SourceLocation">
12065 A SourceLocation represents a point in the source code. That is the file and the line number.
12068 <member name="P:Microsoft.Diagnostics.Symbols.SourceLocation.SourceFile">
12070 The source file for the code
12073 <member name="P:Microsoft.Diagnostics.Symbols.SourceLocation.LineNumber">
12075 The line number for the code.
12078 <member name="T:Microsoft.Diagnostics.Symbols.SymbolReaderOptions">
12080 SymbolReaderFlags indicates preferences on how aggressively symbols should be looked up.
12083 <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.None">
12085 No options this is the common case, where you want to look up everything you can.
12088 <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.CacheOnly">
12090 Only fetch the PDB if it lives in the symbolCacheDirectory (is local an is generated).
12091 This will generate NGEN pdbs unless the NoNGenPDBs flag is set.
12094 <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.NoNGenSymbolCreation">
12096 No NGEN PDB generation.
12099 <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.BuildTimeFilePath">
12101 The path of the file at the time the source file was built. We also look here when looking for the source.
12104 <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.Url">
12106 If the source file is directly available on the web (that is there is a Url that
12107 can be used to fetch it with HTTP Get), then return that Url. If no such publishing
12108 point exists this property will return null.
12111 <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.GetSourceFile(System.Boolean)">
12113 This may fetch things from the source server, and thus can be very slow, which is why it is not a property.
12114 returns a path to the file on the local machine (often in some machine local cache).
12115 If requireChecksumMatch == false then you can see if you have an exact match by calling ChecksumMatches
12116 (and if there is a checksum with HasChecksum).
12119 <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.HasChecksum">
12121 true if the PDB has a checksum for the data in the source file.
12124 <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.ChecksumMatches">
12126 If GetSourceFile is called and 'requireChecksumMatch' == false then you can call this property to
12127 determine if the checksum actually matched or not. This will return true if the original
12128 PDB does not have a checksum (HasChecksum == false)
12131 <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.GetSourceFromSrcServer">
12133 Look up the source from the source server. Returns null if it can't find the source
12134 By default this simply uses the Url to look it up on the web. If 'Url' returns null
12138 <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.ProbeForBestMatch(System.String)">
12140 Given 'fileName' which is a path to a file (which may not exist), set
12141 _filePath and _checksumMatches appropriately. Namely _filePath should
12142 always be the 'best' candidate for the source file path (matching checksum
12143 wins, otherwise first existing file wins).
12145 Returns true if we have a perfect match (no additional probing needed).
12148 <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.ComputeChecksumMatch(System.String)">
12150 Returns true if 'filePath' matches the checksum OR we don't have a checkdum
12151 (thus if we pass what validity check we have).
12154 <member name="T:Microsoft.Diagnostics.Utilities.DirectoryUtilities">
12156 General purpose utilities dealing with archiveFile system directories.
12159 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Copy(System.String,System.String)">
12161 SafeCopy sourceDirectory to directoryToVersion recursively. The target directory does
12165 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Copy(System.String,System.String,System.IO.SearchOption)">
12167 SafeCopy all files from sourceDirectory to directoryToVersion. If searchOptions == AllDirectories
12168 then the copy is recursive, otherwise it is just one level. The target directory does not
12172 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Clean(System.String)">
12174 Clean is sort of a 'safe' recursive delete of a directory. It either deletes the
12175 files or moves them to '*.deleting' names. It deletes directories that are completely
12176 empty. Thus it will do a recursive delete when that is possible. There will only
12177 be *.deleting files after this returns. It returns the number of files and directories
12178 that could not be deleted.
12181 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.DeleteOldest(System.String,System.Int32)">
12183 Removes the oldest directories directly under 'directoryPath' so that
12184 only 'numberToKeep' are left.
12186 <param variable="directoryPath">Directory to removed old files from.</param>
12187 <param variable="numberToKeep">The number of files to keep.</param>
12188 <returns> true if there were no errors deleting files</returns>
12190 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.GetFiles(System.String,System.String,System.IO.SearchOption)">
12192 DirectoryUtilities.GetFiles is basicaly the same as Directory.GetFiles
12193 however it returns IEnumerator, which means that it lazy. This is very important
12194 for large directory trees. A searchPattern can be specified (Windows wildcard conventions)
12195 that can be used to filter the set of archiveFile names returned.
12199 foreach(string fileName in DirectoryUtilities.GetFiles("c:\", "*.txt")){
12200 Console.WriteLine(fileName);
12204 <param variable="directoryPath">The base directory to enumerate</param>
12205 <param variable="searchPattern">A pattern to filter the names (windows filename wildcards * ?)</param>
12206 <param variable="searchOptions">Indicate if the search is recursive or not. </param>
12207 <returns>The enumerator for all archiveFile names in the directory (recursively). </returns>
12209 <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.GetFiles(System.String,System.String)">
12211 Returns a lazy enumerable for every path in 'directoryName' that matchs 'searchPattern' (default is *)MO
12214 <member name="T:Microsoft.Diagnostics.Utilities.FileUtilities">
12216 General purpose utilities dealing with archiveFile system files.
12219 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ReadAllLines(System.String)">
12221 GetLines works much like File.ReadAllLines, however instead of returning a
12222 array of lines, it returns a IEnumerable so that the archiveFile is not read all
12223 at once. This allows 'foreach' syntax to be used on very large files.
12227 foreach(string lineNumber in FileUtilities.GetLines("largeFile.txt")){
12228 Console.WriteLine(lineNumber);
12231 <param variable="fileName">The base directory to enumerate.</param>
12232 <returns>The enumerator for all lines in the archiveFile.</returns>
12234 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ExpandWildcards(System.String[],System.IO.SearchOption)">
12236 Given archiveFile specifications possibly with wildcards in them
12237 Returns an enumerator that returns each expanded archiveFile name in turn.
12239 If searchOpt is AllDirectories it does a recursive match.
12242 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceDelete(System.String)">
12244 Delete works much like File.Delete, except that it will succeed if the
12245 archiveFile does not exist, and will rename the archiveFile so that even if the archiveFile
12246 is locked the original archiveFile variable will be made available.
12248 It renames the archiveFile with a '[num].deleting'. These files might be left
12251 It returns true if it was completely successful. If there is a *.deleting
12252 archiveFile left behind, it returns false.
12254 <param variable="fileName">The variable of the archiveFile to delete</param>
12256 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.TryDelete(System.String)">
12258 Try to delete 'fileName' catching any exception. Returns true if successful. It will delete read-only files.
12261 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceCopy(System.String,System.String)">
12263 SafeCopy sourceFile to destinationFile. If the destination exists
12264 used ForceDelete to get rid of it first.
12267 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceMove(System.String,System.String)">
12269 Moves sourceFile to destinationFile. If the destination exists
12270 used ForceDelete to get rid of it first.
12273 <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.Equals(System.String,System.String)">
12275 Returns true if the two file have exactly the same content (as a stream of bytes).
12278 <member name="T:Microsoft.Diagnostics.Utilities.PathUtil">
12280 Utilities associated with file name paths.
12283 <member name="M:Microsoft.Diagnostics.Utilities.PathUtil.PathRelativeTo(System.String,System.String)">
12285 Given a path and a superdirectory path relativeToDirectory compute the relative path (the path from) relativeToDirectory
12288 <member name="T:Microsoft.Diagnostics.Utilities.StreamUtilities">
12290 General utilities associated with streams.
12293 <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyFromFile(System.String,System.IO.Stream)">
12295 Open the 'fromFilePath' and write its contents to 'toStream'
12298 <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyToFile(System.IO.Stream,System.String)">
12300 Open the 'toFilePath' for writing and write the contents of 'fromStream' to it
12303 <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyStream(System.IO.Stream,System.IO.Stream)">
12305 CopyStream simply copies 'fromStream' to 'toStream'
12308 <member name="T:Microsoft.Diagnostics.Utilities.XmlUtilities">
12310 The important thing about these general utilities is that they have only dependencies on mscorlib and
12311 System (they can be used from anywhere).
12314 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.OpenXmlElement(System.String)">
12316 Given an XML element, remove the closing operator for it, so you can add new child elements to it by concatination.
12319 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlEscape(System.Object,System.Boolean)">
12321 Given an object 'obj' do ToString() on it, and then transform it so that all speical XML characters are escaped and return the result.
12322 If 'quote' is true also surround the resulting object with double quotes.
12325 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuote(System.Object)">
12327 A shortcut for XmlEscape(obj, true) (that is ToString the object, escape XML chars, and then surround with double quotes.
12330 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuote(System.Int32)">
12332 Create a doubly quoted string for the decimal integer value
12335 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.UInt32)">
12337 Create a double quoted string for the hexidecimal value of 'value'
12340 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.UInt64)">
12342 Create a double quoted string for the hexidecimal value of 'value'
12345 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.Int32)">
12347 Create a double quoted string for the hexidecimal value of 'value'
12350 <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.Int64)">
12352 Create a double quoted string for the hexidecimal value of 'value'
12355 <member name="T:System.Diagnostics.Tracing.ManifestEnvelope">
12357 Used to send the rawManifest into the event stream as a series of events.
12360 <member name="T:NativeDlls">
12362 Finds native DLLS next to the managed DLL that uses them.
12365 <member name="F:NativeDlls.UnknownLocation">
12367 ManifestModule.FullyQualifiedName returns this as file path if the assembly is loaded as byte array
12370 <member name="M:NativeDlls.LoadNative(System.String)">
12372 Loads a native DLL with a filename-extension of 'simpleName' by adding the path of the currently executing assembly
12375 <param name="simpleName"></param>
12377 <member name="P:NativeDlls.ProcessArchitectureDirectory">
12379 Gets the name of the directory containing compiled binaries (DLLs) which have the same architecture as the
12380 currently executing process.
12383 <member name="F:NativeDlls.s_ProcessArchDirectory">
12385 This is the backing field for the lazily-computed <see cref="P:NativeDlls.ProcessArchitectureDirectory"/> property.
12388 <member name="T:Diagnostics.Tracing.StackSources.AggregateStackSource">
12390 A StackSource that aggregates information from other StackSources into a single unified view.
12393 Each StackSource has a name associated with it. The stacks for each StackSource will be grouped under
12394 a pseudo-frame named the same as the source name. Source names are specified on initialization.
12397 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,Microsoft.Diagnostics.Tracing.Stacks.StackSource}})">
12399 Initialize a new AggregateStackSource.
12401 <param name="sources">An IEnumerable of KeyValuePairs mapping source names to StackSources.</param>
12403 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
12405 Enumerate samples with a callback function.
12407 <param name="callback">The function to call on each sample.</param>
12409 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SamplesImmutable">
12414 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Boolean[])">
12416 Enumerate samples for a given set of scenarios with a callback function.
12418 <param name="callback">The function to call on each sample.</param>
12419 <param name="scenariosIncluded">An array of length ScenarioCount. If scenariosIncluded[i] == true, include scenario i.</param>
12421 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ParallelForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Boolean[],System.Int32)">
12426 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
12428 Look up a sample by index.
12430 <param name="sampleIndex">The index of the sample to look up.</param>
12432 The sample, if it can be found and all sub-sources support indexing; null otherwise.
12435 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12437 Gets the index of the caller of a given call stack.
12439 <param name="callStackIndex">The call stack to look up.</param>
12440 <returns>The caller, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid"/> otherwise.</returns>
12442 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12444 Get the frame index of a given call stack.
12446 <param name="callStackIndex">The call stack to look up.</param>
12447 <returns>The frame index of the call stack, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid"/> otherwise.</returns>
12449 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12451 Gets the name of a frame.
12453 <param name="frameIndex">The frame to look up.</param>
12454 <param name="verboseName">Whether to include full module paths.</param>
12455 <returns>The name of the frame.</returns>
12457 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.CallStackIndexLimit">
12459 The total number of call stacks in this source.
12462 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.CallFrameIndexLimit">
12464 The total number of frames in this source.
12467 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SampleIndexLimit">
12469 The total number of samples in this source.
12472 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.ScenarioNames">
12474 The names for the scenarios.
12477 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SampleTimeRelativeMSecLimit">
12482 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.ScenarioCount">
12487 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ConvertSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,System.Int32)">
12489 Convert a StackSourceSample produced by a sub-source into one suitable for the aggregate source.
12491 <param name="input">The StackSourceSample to convert.</param>
12492 <param name="storage">A place to but the returned sampled (will become the return value).</param>
12493 <param name="sourceIdx">The index of the source from which the sample came.</param>
12494 <returns>The converted sample.</returns>
12496 If ConvertSample is called again, all previous samples produced by ConvertSample may no longer be used.
12499 <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_sourceNames">
12501 Friendly names of sources.
12504 Name 0 is the name of the pseudo-source, which should not be used.
12507 <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_sources">
12509 The list of sources.
12512 Source 0 is the pseudo-source (identical to m_pseudo).
12515 <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_firstSampleTime">
12517 THis is the time of the first sample. It lets us normalize the time in the sample to be relative to this.
12520 <member name="T:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource">
12522 A StackSource to generate the pseudo-frames needed to group scenarios.
12525 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.#ctor(System.String[])">
12527 Initialize a new PseudoStackSource.
12529 <param name="names">The names of the frames.</param>
12531 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetStackForSource(System.Int32)">
12533 Gets the CallStackIndex of the call stack corresponding to a given source.
12535 <param name="sourceIdx">The index of the source to look up.</param>
12536 <returns>The StackSourceCallStackIndex of a stack under which to group all call stacks for that source.</returns>
12538 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12540 Gets the index of the caller of a given call stack.
12542 <param name="callStackIndex">The call stack to look up.</param>
12543 <returns>The caller, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid"/> otherwise.</returns>
12545 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12547 Get the frame index of a given call stack.
12549 <param name="callStackIndex">The call stack to look up.</param>
12550 <returns>The frame index of the call stack, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid"/> otherwise.</returns>
12552 <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12554 Gets the name of a frame.
12556 <param name="frameIndex">The frame to look up.</param>
12557 <param name="verboseName">Whether to include full module paths.</param>
12558 <returns>The name of the frame.</returns>
12560 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.CallStackIndexLimit">
12562 The total number of call stacks in this source.
12565 <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.CallFrameIndexLimit">
12567 The total number of frames in this source.
12570 <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.names">
12572 The names of the frames that this source generates.
12575 <member name="T:Diagnostics.Tracing.StackSources.IndexMapExtensions">
12577 Extension methods for type-safe IndexMap operations on StackSource*Index enums.
12580 <member name="T:Diagnostics.Tracing.StackSources.FilterParams">
12582 This is just a class that holds data. It does nothing except support an 'update' events
12585 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.#ctor">
12587 Constructs a Filter parameter class with all empty properties.
12590 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.#ctor(Diagnostics.Tracing.StackSources.FilterParams)">
12592 Create a Filter Parameters Structure form another one
12594 <param name="other"></param>
12596 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.Set(Diagnostics.Tracing.StackSources.FilterParams)">
12598 Set a Filter Parameters Structure form another one
12601 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.Name">
12606 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.StartTimeRelativeMSec">
12608 Fetch StartTimeRelativeMSec
12611 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.EndTimeRelativeMSec">
12613 Fetch EndTimeRelativeMSec
12616 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.MinInclusiveTimePercent">
12618 Fetch MinInclusiveTimePercent
12621 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.FoldRegExs">
12626 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.IncludeRegExs">
12628 Fetch IncludeRegExs
12631 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.ExcludeRegExs">
12633 Fetch ExcludeRegExs
12636 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.GroupRegExs">
12641 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.TypePriority">
12646 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.ScenarioList">
12651 <member name="P:Diagnostics.Tracing.StackSources.FilterParams.Scenarios">
12656 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.Equals(System.Object)">
12661 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.GetHashCode">
12666 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.EscapeRegEx(System.String)">
12671 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.WriteToXml(System.Xml.XmlWriter)">
12673 Write out the FilterParameters to XML 'writer'
12676 <member name="M:Diagnostics.Tracing.StackSources.FilterParams.ToXml">
12678 Create an XML representation of FilterParams as a string
12680 <returns></returns>
12682 <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource">
12684 A FilterStackSouce morphs one stack filters or groups the stacks of one stack source to form a new
12685 stack source. It is very powerful mechanism.
12688 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.#ctor(Diagnostics.Tracing.StackSources.FilterParams,Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind)">
12690 Create a new FilterStackSource.
12692 <param name="filterParams">Specifies how to filter or group the stacks</param>
12693 <param name="stackSource">The input source to morph</param>
12694 <param name="scalingPolicy">How to scale the data (as time or simply by size of data)</param>
12696 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
12701 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12706 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetNumberOfFoldedFrames(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12711 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12716 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12721 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.SampleTimeRelativeMSecLimit">
12726 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.ScenarioCount">
12731 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.CallStackIndexLimit">
12736 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.CallFrameIndexLimit">
12741 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
12746 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.BaseStackSource">
12751 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.IsGraphSource">
12756 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetReferences(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,Microsoft.Diagnostics.Tracing.Stacks.RefDirection,System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex})">
12761 <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.SampleIndexLimit">
12766 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetStackInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
12768 Associated with every frame is a FrameInfo which is the computed answers associated with that frame name.
12769 We cache these and so most of the time looking up frame information is just an array lookup.
12771 FrameInfo contains information that is ONLY dependent on the frame name (not the stack it came from), so
12772 entry point groups and include patterns can not be completely processed at this point. Never returns null.
12775 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GenerateStackInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
12777 Generate the stack information for 'stack' and place it in stackInfoRet. Only called by GetStackInfo.
12780 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
12782 Returns the frame information for frameIndex. Never returns null.
12785 <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.GroupPattern">
12787 This is just the parsed form of a grouping specification Pat->GroupNameTemplate (it has a pattern regular
12788 expression and a group name that can have replacements) It is a trivial class
12791 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.GroupPattern.IsModuleEntry">
12793 Experimentally we are going to special case the module entry pattern.
12796 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ParseGroups(System.String)">
12798 Parses a string into the GroupPattern structure that allows it to executed (matched).
12801 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.FindGroupNameFromFrameName(System.String,System.Boolean@)">
12803 Given the name of a frame, look it up in the group patterns and morph it to its group name.
12804 If the group that matches is a entryGroup then set 'isEntryGroup'. Will return null if
12805 no group matches 'frameName'
12808 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ParseRegExList(System.String)">
12810 Holds parsed information about patterns for groups includes, excludes or folds.
12813 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.IsMatch(System.Text.RegularExpressions.Regex[],System.String)">
12815 Returns the index in the 'pats' array of the first pattern that matches 'str'. Returns -1 if no match.
12818 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.SameSet(System.Int32[],System.Int32[])">
12820 returns true if set1 and set1 (as returned from MatchSet) are identical
12823 <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ToDotNetRegEx(System.String)">
12825 Convert a string from my regular expression format (where you only have * and { } as grouping operators
12826 and convert them to .NET regular expressions string
12829 <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.FrameInfo">
12831 FrameInfo is all the information we need to associate with an Frame ID (to figure out what group/pattern it belongs to)
12832 This includes what group it belongs to, the include patterns it matches whether to discard or fold it. It is
12833 all the processing we can do with JUST the frame ID.
12835 Note that FrameInfo is reused by multiple stacks, which means that you should NOT update fields in it after initial creation.
12838 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.FrameInfo.GroupID">
12840 This is what we return to the Stack crawler, it encodes either that we should filter the sample,
12841 fold the frame, form a group, or the frameID that we have chosen to represent the group as a whole.
12844 <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo">
12846 Represents all accumulated information about grouping for a particular stack. Effectively this is the
12847 'result' of applying the grouping and filtering to a particular stack. We cache the last 100 or so
12848 of these because stacks tend to reuse the parts of the stack close the root.
12851 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo.IncPathsMatchedSoFar">
12853 The include patterns that have been matched by some frame in this stack. (ultimately we need all bits set).
12854 Can be null, which means the empty set.
12857 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.MatchesNothing">
12859 Represents a frame that does not match any pattern. Thus the default of simply returning the frame ID is appropriate
12862 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.Discard">
12864 Represents a frame that should be discarded.
12867 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.Fold">
12869 Represents a frame that should be folded into its caller.
12872 <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfoCacheSize">
12874 We cache information about stacks we have previously seen so we can short-circuit work.
12877 Note when this value is 4096 some memory profiles are VERY sluggish. Don't make it too
12878 small unless it is adaptive.
12881 <member name="T:Utilities.IndexMap">
12883 A class that maps contiguous indices from various sources from and to a single range of contiguous indices.
12886 This is useful for aggregating indices used, for instance, in the interface for StackSource (StackSourceCallStackIndex /
12887 StackSourceFrameIndex) in AggregateStackSource. This is an easy way, given the incoming StackSource*Index, to find the
12888 aggregated source to query, and the corresponding StackSource*Index to send to the source.
12891 With counts [3, 7, 5]:
12893 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 = Incoming index
12894 __0__ ______1______ ____2____ = Source number
12895 0 1 2|0 1 2 3 4 5 6|0 1 2 3 4 = Offset
12898 <member name="M:Utilities.IndexMap.#ctor(System.Collections.Generic.IEnumerable{System.Int32})">
12900 Initialize a new IndexMap with the specified counts.
12902 <param name="counts">A list mapping an index to its corresponding count.</param>
12904 <member name="M:Utilities.IndexMap.SourceOf(System.Int32)">
12906 Find the source for an index.
12908 <param name="aggregate">The aggregate index to look up.</param>
12909 <returns>The source that <paramref name="aggregate"/> belongs to.</returns>
12911 <member name="M:Utilities.IndexMap.OffsetOf(System.Int32,System.Int32)">
12913 Find the offset into a given source of a given aggregate index.
12915 <param name="aggregate">The aggregate index to look up.</param>
12916 <param name="source">The source to find the offset into.</param>
12917 <returns>The offset of <paramref name="aggregate"/> into <paramref name="source"/>.</returns>
12919 <member name="M:Utilities.IndexMap.IndexOf(System.Int32,System.Int32)">
12921 Finds the index for a given source/offset pair.
12923 <param name="source">The source number of the item.</param>
12924 <param name="offset">The offset into the corresponding source for the item.</param>
12925 <returns>The index corresponding to the pair of <paramref name="source"/> and <paramref name="offset"/>.</returns>
12927 <member name="P:Utilities.IndexMap.Count">
12929 The total number of indices in the map.
12932 <member name="F:Utilities.IndexMap.m_lookup">
12934 The lookup table to convert indices to source/offset pairs.
12937 This contains the cumulative count of indices that occurred before each source.
12938 The last element is the total number of indices (equal to m_range).
12941 <member name="F:Utilities.IndexMap.m_range">
12943 The total number of indices in the map.
12946 <member name="F:Utilities.IndexMap.m_lastSourceLookedUp">
12948 We remember the last source we looked up and check there first very likely they are next to one another.
12951 <member name="T:Utilities.Cache`2">
12953 A finite cache based with a least recently used algorithm for replacement.
12954 It is meant to be fast (fast as a hashtable), and space efficient (not much
12955 over the MaxEntry key-value pairs are stored. (only 8 bytes per entry additional).
12957 After reaching MaxEntry entries. It uses a roughly least-recently used
12958 algorithm to pick a entry to recycle. To stay efficient it only searches
12959 a finite time (up to 5 entries) for a entry that is older than 1/2 of the
12960 entries in the table.
12962 It has the property that if you are in the maxEntries/2 most commonly fetched
12963 things, you very unlikely to be evicted once you are in the cache.
12966 <member name="M:Utilities.Cache`2.#ctor(System.Int32)">
12968 maxEntries currently is only set in the constructor. Thus this is a finite sized cache
12969 but is otherwise very efficient. Currently it uses ushorts internally so the number
12970 of entries is limited to 64K (it silently limits it if you give maxEntries > 64K).
12972 <param name="maxEntries"></param>
12974 <member name="M:Utilities.Cache`2.Get(`0)">
12976 Fetches the value from the cache with key 'key'. Returns default(T) if not present
12979 <member name="M:Utilities.Cache`2.TryGet(`0,`1@)">
12981 Fetches the value from the cache with key 'key'. Returns false if not present.
12984 <member name="M:Utilities.Cache`2.Add(`0,`1)">
12986 Adds 'key' with value 'value' to the cache.
12989 <member name="M:Utilities.Cache`2.Clear">
12991 Removes all entries in the cache.
12994 <member name="P:Utilities.Cache`2.MaxEntries">
12996 Sets the maxiumum number of key-value pairs the cache will keep. (after that old ones are remvoed).
12999 <member name="F:Utilities.Cache`2.End">
13001 Represents a null pointer (end of a linked list)
13004 <member name="T:Utilities.CommandOptions">
13006 CommandOptions is a helper class for the Command class. It stores options
13007 that affect the behavior of the execution of ETWCommands and is passes as a
13008 parameter to the constructor of a Command.
13010 It is useful for these options be be on a separate class (rather than
13011 on Command itself), because it is reasonably common to want to have a set
13012 of options passed to several commands, which is not easily possible otherwise.
13015 <member name="F:Utilities.CommandOptions.Infinite">
13017 Can be assigned to the Timeout Property to indicate infinite timeout.
13020 <member name="M:Utilities.CommandOptions.#ctor">
13022 CommanOptions holds a set of options that can be passed to the constructor
13023 to the Command Class as well as Command.Run*
13026 <member name="M:Utilities.CommandOptions.Clone">
13028 Return a copy an existing set of command options
13030 <returns>The copy of the command options</returns>
13032 <member name="P:Utilities.CommandOptions.NoThrow">
13034 Normally commands will throw if the subprocess returns a non-zero
13035 exit code. NoThrow suppresses this.
13038 <member name="M:Utilities.CommandOptions.AddNoThrow">
13040 Updates the NoThrow propery and returns the updated commandOptions.
13041 <returns>Updated command options</returns>
13044 <member name="P:Utilities.CommandOptions.Start">
13046 ShortHand for UseShellExecute and NoWait
13049 <member name="M:Utilities.CommandOptions.AddStart">
13051 Updates the Start propery and returns the updated commandOptions.
13054 <member name="P:Utilities.CommandOptions.UseShellExecute">
13056 Normally commands are launched with CreateProcess. However it is
13057 also possible use the Shell Start API. This causes Command to look
13058 up the executable differently
13061 <member name="M:Utilities.CommandOptions.AddUseShellExecute">
13063 Updates the Start propery and returns the updated commandOptions.
13066 <member name="P:Utilities.CommandOptions.NoWindow">
13068 Indicates that you want to hide any new window created.
13071 <member name="M:Utilities.CommandOptions.AddNoWindow">
13073 Updates the NoWindow propery and returns the updated commandOptions.
13076 <member name="P:Utilities.CommandOptions.NoWait">
13078 Indicates that you want don't want to wait for the command to complete.
13081 <member name="M:Utilities.CommandOptions.AddNoWait">
13083 Updates the NoWait propery and returns the updated commandOptions.
13086 <member name="P:Utilities.CommandOptions.Elevate">
13088 Indicates that the command must run at elevated Windows privledges (causes a new command window)
13091 <member name="M:Utilities.CommandOptions.AddElevate">
13093 Updates the Elevate propery and returns the updated commandOptions.
13096 <member name="P:Utilities.CommandOptions.Timeout">
13098 By default commands have a 10 minute timeout (600,000 msec), If this
13099 is inappropriate, the Timeout property can change this. Like all
13100 timouts in .NET, it is in units of milliseconds, and you can use
13101 CommandOptions.Infinite to indicate no timeout.
13104 <member name="M:Utilities.CommandOptions.AddTimeout(System.Int32)">
13106 Updates the Timeout propery and returns the updated commandOptions.
13107 CommandOptions.Infinite can be used for infinite
13110 <member name="P:Utilities.CommandOptions.Input">
13112 Indicates the string will be sent to Console.In for the subprocess.
13115 <member name="M:Utilities.CommandOptions.AddInput(System.String)">
13117 Updates the Input propery and returns the updated commandOptions.
13120 <member name="P:Utilities.CommandOptions.CurrentDirectory">
13122 Indicates the current directory the subProcess will have.
13125 <member name="M:Utilities.CommandOptions.AddCurrentDirectory(System.String)">
13127 Updates the CurrentDirectory propery and returns the updated commandOptions.
13130 <member name="P:Utilities.CommandOptions.OutputFile">
13132 Indicates the standard output and error of the command should be redirected
13133 to a archiveFile rather than being stored in Memory in the 'Output' property of the
13137 <member name="M:Utilities.CommandOptions.AddOutputFile(System.String)">
13139 Updates the OutputFile propery and returns the updated commandOptions.
13142 <member name="P:Utilities.CommandOptions.OutputStream">
13144 Indicates the standard output and error of the command should be redirected
13145 to a a TextWriter rather than being stored in Memory in the 'Output' property
13149 <member name="M:Utilities.CommandOptions.AddOutputStream(System.IO.TextWriter)">
13151 Updates the OutputStream property and returns the updated commandOptions.
13154 <member name="P:Utilities.CommandOptions.EnvironmentVariables">
13156 Gets the Environment variables that will be set in the subprocess that
13157 differ from current process's environment variables. Any time a string
13158 of the form %VAR% is found in a value of a environment variable it is
13159 replaced with the value of the environment variable at the time the
13160 command is launched. This is useful for example to update the PATH
13161 environment variable eg. "%PATH%;someNewPath"
13164 <member name="M:Utilities.CommandOptions.AddEnvironmentVariable(System.String,System.String)">
13166 Adds the environment variable with the give value to the set of
13167 environmetn variables to be passed to the sub-process and returns the
13168 updated commandOptions. Any time a string
13169 of the form %VAR% is found in a value of a environment variable it is
13170 replaced with the value of the environment variable at the time the
13171 command is launched. This is useful for example to update the PATH
13172 environment variable eg. "%PATH%;someNewPath"
13175 <member name="T:Utilities.Command">
13177 Command represents a running of a command lineNumber process. It is basically
13178 a wrapper over System.Diagnostics.Process, which hides the complexitity
13179 of System.Diagnostics.Process, and knows how to capture output and otherwise
13180 makes calling commands very easy.
13183 <member name="P:Utilities.Command.StartTime">
13185 The time the process started.
13188 <member name="P:Utilities.Command.HasExited">
13190 Returns true if the process has exited.
13193 <member name="P:Utilities.Command.ExitTime">
13195 The time the processed Exited. (HasExited should be true before calling)
13198 <member name="P:Utilities.Command.Duration">
13200 The duration of the command (HasExited should be true before calling)
13203 <member name="P:Utilities.Command.Id">
13205 The operating system ID for the subprocess.
13208 <member name="P:Utilities.Command.ExitCode">
13210 The process exit code for the subprocess. (HasExited should be true before calling)
13211 Often this does not need to be checked because Command.Run will throw an exception
13212 if it is not zero. However it is useful if the CommandOptions.NoThrow property
13216 <member name="P:Utilities.Command.Output">
13218 The standard output and standard error output from the command. This
13219 is accumulated in real time so it can vary if the process is still running.
13221 This property is NOT available if the CommandOptions.OutputFile or CommandOptions.OutputStream
13222 is specified since the output is being redirected there. If a large amount of output is
13223 expected (> 1Meg), the Run.AddOutputStream(Stream) is recommended for retrieving it since
13224 the large string is never materialized at one time.
13227 <member name="P:Utilities.Command.Options">
13229 Returns that CommandOptions structure that holds all the options that affect
13230 the running of the command (like Timeout, Input ...)
13233 <member name="M:Utilities.Command.RunToConsole(System.String,Utilities.CommandOptions)">
13235 Run 'commandLine', sending the output to the console, and wait for the command to complete.
13236 This simulates what batch filedo when executing their commands. It is a bit more verbose
13237 by default, however
13239 <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13240 <param variable="options">Additional qualifiers that control how the process is run</param>
13241 <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13243 <member name="M:Utilities.Command.Run(System.String,Utilities.CommandOptions)">
13245 Run 'commandLine' as a subprocess and waits for the command to complete.
13246 Output is captured and placed in the 'Output' property of the returned Command
13249 <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13250 <param variable="options">Additional qualifiers that control how the process is run</param>
13251 <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13253 <member name="M:Utilities.Command.#ctor(System.String,Utilities.CommandOptions)">
13255 Launch a new command and returns the Command object that can be used to monitor
13256 the restult. It does not wait for the command to complete, however you
13257 can call 'Wait' to do that, or use the 'Run' or 'RunToConsole' methods. */
13259 <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13260 <param variable="options">Additional qualifiers that control how the process is run</param>
13261 <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13263 <member name="M:Utilities.Command.#ctor(System.String)">
13265 Create a subprocess to run 'commandLine' with no special options.
13266 <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13269 <member name="M:Utilities.Command.Wait">
13271 Wait for a started process to complete (HasExited will be true on return)
13273 <returns>Wait returns that 'this' pointer.</returns>
13275 <member name="M:Utilities.Command.ThrowCommandFailure(System.String)">
13277 Throw a error if the command exited with a non-zero exit code
13278 printing useful diagnostic information along with the thrown message.
13279 This is useful when NoThrow is specified, and after post-processing
13280 you determine that the command really did fail, and an normal
13281 Command.Run failure was the appropriate action.
13283 <param name="message">An additional message to print in the throw (can be null)</param>
13285 <member name="P:Utilities.Command.Process">
13287 Get the underlying process object. Generally not used.
13290 <member name="M:Utilities.Command.Kill">
13292 Kill the process (and any child processses (recursively) associated with the
13293 running command). Note that it may not be able to kill everything it should
13294 if the child-parent' chain is broken by a child that creates a subprocess and
13295 then dies itself. This is reasonably uncommon, however.
13298 <member name="M:Utilities.Command.Quote(System.String)">
13300 Put double quotes around 'str' if necessary (handles quotes quotes.
13303 <member name="M:Utilities.Command.FindOnPath(System.String)">
13305 Given a string 'commandExe' look for it on the path the way cmd.exe would.
13306 Returns null if it was not found.
13309 <member name="T:Utilities.OperatingSystemVersion.RTL_OSVERSIONINFOEX">
13311 requiredOSVersion is a number that is the major version * 10 + minor. Thus
13316 This returns true if true OS version is >= 'requiredOSVersion
13319 <member name="T:Dia2Lib.DiaLoader">
13321 The DiaLoader class knows how to load the msdia140.dll (the Debug Access Interface) (see docs at
13322 http://msdn.microsoft.com/en-us/library/x93ctkx8.aspx), without it being registered as a COM object.
13323 Basically it just called the DllGetClassObject interface directly.
13325 It has one public method 'GetDiaSourceObject' which knows how to create a IDiaDataSource object.
13326 From there you can do anything you need.
13328 In order to get IDiaDataSource3 which includes'getStreamSize' API, you need to use the
13329 vctools\langapi\idl\dia2_internal.idl file from devdiv to produce Dia2Lib.dll
13331 roughly what you need to do is
13332 copy vctools\langapi\idl\dia2_internal.idl .
13333 copy vctools\langapi\idl\dia2.idl .
13334 copy vctools\langapi\include\cvconst.h .
13335 Change dia2.idl to include interface IDiaDataSource3 inside library Dia2Lib->importlib->coclass DiaSource
13336 midl dia2_internal.idl /D CC_DP_CXX
13337 tlbimp dia2_internal.tlb
13338 REM result is Dia2Lib.dll
13341 <member name="M:Dia2Lib.DiaLoader.GetDiaSourceObject">
13343 Load the msdia100 dll and get a IDiaDataSource from it. This is your gateway to PDB reading.
13346 <member name="F:Dia2Lib.DiaLoader.s_loadedNativeDll">
13348 Used to ensure the native library is loaded at least once prior to trying to use it. No protection is
13349 included to avoid multiple loads, but this is not a problem since we aren't trying to unload the library
13353 <member name="T:PEFile.PEFile">
13355 PEFile is a reader for the information in a Portable Exectable (PE) FILE. This is what EXEs and DLLs are.
13357 It can read both 32 and 64 bit PE files.
13360 <member name="M:PEFile.PEFile.#ctor(System.String)">
13362 Create a new PEFile header reader that inspects the
13365 <member name="P:PEFile.PEFile.Header">
13367 The Header for the PE file. This contains the infor in a link /dump /headers
13370 <member name="M:PEFile.PEFile.GetPdbSignature(System.String@,System.Guid@,System.Int32@,System.Boolean)">
13372 Looks up the debug signature information in the EXE. Returns true and sets the parameters if it is found.
13374 If 'first' is true then the first entry is returned, otherwise (by default) the last entry is used
13375 (this is what debuggers do today). Thus NGEN images put the IL PDB last (which means debuggers
13376 pick up that one), but we can set it to 'first' if we want the NGEN PDB.
13379 <member name="M:PEFile.PEFile.GetFileVersionInfo">
13381 Gets the File Version Information that is stored as a resource in the PE file. (This is what the
13382 version tab a file's property page is populated with).
13385 <member name="M:PEFile.PEFile.GetSxSManfest">
13387 For side by side dlls, the manifest that decribes the binding information is stored as the RT_MANIFEST resource, and it
13388 is an XML string. This routine returns this.
13390 <returns></returns>
13392 <member name="P:PEFile.PEFile.HasPrecompiledManagedCode">
13394 Returns true if this is and NGEN or Ready-to-Run image (it has precompiled native code)
13397 <member name="P:PEFile.PEFile.IsManagedReadyToRun">
13399 Returns true if file has a managed ready-to-run image.
13402 <member name="M:PEFile.PEFile.ReadyToRunVersion(System.Int16@,System.Int16@)">
13404 Gets the major and minor ready-to-run version. returns true if ready-to-run.
13407 <member name="M:PEFile.PEFile.Dispose">
13409 Closes any file handles and cleans up resources.
13412 <member name="T:PEFile.PEHeader">
13414 A PEHeader is a reader of the data at the beginning of a PEFile. If the header bytes of a
13415 PEFile are read or mapped into memory, this class can parse it when given a poitner to it.
13416 It can read both 32 and 64 bit PE files.
13419 <member name="M:PEFile.PEHeader.#ctor(System.Void*)">
13421 Returns a PEHeader for void* pointer in memory. It does NO validity checking.
13424 <member name="P:PEFile.PEHeader.PEHeaderSize">
13426 The total s,ize of the header, including section array of the the PE header.
13429 <member name="M:PEFile.PEHeader.VirtualAddressToRva(System.Void*)">
13431 Given a virtual address to data in a mapped PE file, return the relative virtual address (displacement from start of the image)
13434 <member name="M:PEFile.PEHeader.RvaToVirtualAddress(System.Int32)">
13436 Given a relative virtual address (displacement from start of the image) return the virtual address to data in a mapped PE file
13439 <member name="M:PEFile.PEHeader.RvaToFileOffset(System.Int32)">
13441 Given a relative virtual address (displacement from start of the image) return a offset in the file data for that data.
13444 <member name="P:PEFile.PEHeader.IsPE64">
13446 Returns true if this is PE file for a 64 bit architecture.
13449 <member name="P:PEFile.PEHeader.IsManaged">
13451 Returns true if this file contains managed code (might also contain native code).
13454 <member name="P:PEFile.PEHeader.Signature">
13456 Returns the 'Signature' of the PE HEader PE\0\0 = 0x4550, used for sanity checking.
13459 <member name="P:PEFile.PEHeader.Machine">
13461 The machine this PE file is intended to run on
13464 <member name="P:PEFile.PEHeader.NumberOfSections">
13466 PE files have a number of sections that represent regions of memory with the access permisions. This is the nubmer of such sections.
13469 <member name="P:PEFile.PEHeader.TimeDateStampSec">
13471 The the PE file was created represented as the number of seconds since Jan 1 1970
13474 <member name="P:PEFile.PEHeader.TimeDateStamp">
13476 The the PE file was created represented as a DateTime object
13479 <member name="P:PEFile.PEHeader.PointerToSymbolTable">
13481 PointerToSymbolTable (see IMAGE_FILE_HEADER in PE File spec)
13484 <member name="P:PEFile.PEHeader.NumberOfSymbols">
13486 NumberOfSymbols (see IMAGE_FILE_HEADER PE File spec)
13489 <member name="P:PEFile.PEHeader.SizeOfOptionalHeader">
13491 SizeOfOptionalHeader (see IMAGE_FILE_HEADER PE File spec)
13494 <member name="P:PEFile.PEHeader.Characteristics">
13496 Characteristics (see IMAGE_FILE_HEADER PE File spec)
13499 <member name="P:PEFile.PEHeader.Magic">
13501 Magic (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13504 <member name="P:PEFile.PEHeader.MajorLinkerVersion">
13506 MajorLinkerVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13509 <member name="P:PEFile.PEHeader.MinorLinkerVersion">
13511 MinorLinkerVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13514 <member name="P:PEFile.PEHeader.SizeOfCode">
13516 SizeOfCode (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13519 <member name="P:PEFile.PEHeader.SizeOfInitializedData">
13521 SizeOfInitializedData (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13524 <member name="P:PEFile.PEHeader.SizeOfUninitializedData">
13526 SizeOfUninitializedData (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13529 <member name="P:PEFile.PEHeader.AddressOfEntryPoint">
13531 AddressOfEntryPoint (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13534 <member name="P:PEFile.PEHeader.BaseOfCode">
13536 BaseOfCode (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13539 <member name="P:PEFile.PEHeader.ImageBase">
13541 ImageBase (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13544 <member name="P:PEFile.PEHeader.SectionAlignment">
13546 SectionAlignment (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13549 <member name="P:PEFile.PEHeader.FileAlignment">
13551 FileAlignment (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13554 <member name="P:PEFile.PEHeader.MajorOperatingSystemVersion">
13556 MajorOperatingSystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13559 <member name="P:PEFile.PEHeader.MinorOperatingSystemVersion">
13561 MinorOperatingSystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13564 <member name="P:PEFile.PEHeader.MajorImageVersion">
13566 MajorImageVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13569 <member name="P:PEFile.PEHeader.MinorImageVersion">
13571 MinorImageVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13574 <member name="P:PEFile.PEHeader.MajorSubsystemVersion">
13576 MajorSubsystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13579 <member name="P:PEFile.PEHeader.MinorSubsystemVersion">
13581 MinorSubsystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13584 <member name="P:PEFile.PEHeader.Win32VersionValue">
13586 Win32VersionValue (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13589 <member name="P:PEFile.PEHeader.SizeOfImage">
13591 SizeOfImage (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13594 <member name="P:PEFile.PEHeader.SizeOfHeaders">
13596 SizeOfHeaders (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13599 <member name="P:PEFile.PEHeader.CheckSum">
13601 CheckSum (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13604 <member name="P:PEFile.PEHeader.Subsystem">
13606 Subsystem (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13609 <member name="P:PEFile.PEHeader.DllCharacteristics">
13611 DllCharacteristics (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13614 <member name="P:PEFile.PEHeader.SizeOfStackReserve">
13616 SizeOfStackReserve (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13619 <member name="P:PEFile.PEHeader.SizeOfStackCommit">
13621 SizeOfStackCommit (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13624 <member name="P:PEFile.PEHeader.SizeOfHeapReserve">
13626 SizeOfHeapReserve (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13629 <member name="P:PEFile.PEHeader.SizeOfHeapCommit">
13631 SizeOfHeapCommit (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13634 <member name="P:PEFile.PEHeader.LoaderFlags">
13636 LoaderFlags (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13639 <member name="P:PEFile.PEHeader.NumberOfRvaAndSizes">
13641 NumberOfRvaAndSizes (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13644 <member name="M:PEFile.PEHeader.Directory(System.Int32)">
13646 Returns the data directory (virtual address an blob, of a data directory with index 'idx'. 14 are currently defined.
13649 <member name="P:PEFile.PEHeader.ExportDirectory">
13651 Returns the data directory for DLL Exports see PE file spec for more
13654 <member name="P:PEFile.PEHeader.ImportDirectory">
13656 Returns the data directory for DLL Imports see PE file spec for more
13659 <member name="P:PEFile.PEHeader.ResourceDirectory">
13661 Returns the data directory for DLL Resources see PE file spec for more
13664 <member name="P:PEFile.PEHeader.ExceptionDirectory">
13666 Returns the data directory for DLL Exceptions see PE file spec for more
13669 <member name="P:PEFile.PEHeader.CertificatesDirectory">
13671 Returns the data directory for DLL securiy certificates (Authenticode) see PE file spec for more
13674 <member name="P:PEFile.PEHeader.BaseRelocationDirectory">
13676 Returns the data directory Image Base Relocations (RELOCS) see PE file spec for more
13679 <member name="P:PEFile.PEHeader.DebugDirectory">
13681 Returns the data directory for Debug information see PE file spec for more
13684 <member name="P:PEFile.PEHeader.ArchitectureDirectory">
13686 Returns the data directory for DLL Exports see PE file spec for more
13689 <member name="P:PEFile.PEHeader.GlobalPointerDirectory">
13691 Returns the data directory for GlobalPointer (IA64) see PE file spec for more
13694 <member name="P:PEFile.PEHeader.ThreadStorageDirectory">
13696 Returns the data directory for THread local storage see PE file spec for more
13699 <member name="P:PEFile.PEHeader.LoadConfigurationDirectory">
13701 Returns the data directory for Load Configuration see PE file spec for more
13704 <member name="P:PEFile.PEHeader.BoundImportDirectory">
13706 Returns the data directory for Bound Imports see PE file spec for more
13709 <member name="P:PEFile.PEHeader.ImportAddressTableDirectory">
13711 Returns the data directory for the DLL Import Address Table (IAT) see PE file spec for more
13714 <member name="P:PEFile.PEHeader.DelayImportDirectory">
13716 Returns the data directory for Delayed Imports see PE file spec for more
13719 <member name="P:PEFile.PEHeader.ComDescriptorDirectory">
13721 see PE file spec for more .NET Runtime infomration.
13724 <member name="T:PEFile.MachineType">
13726 The Machine types supported by the portable executable (PE) File format
13729 <member name="F:PEFile.MachineType.Native">
13731 Unknown machine type
13734 <member name="F:PEFile.MachineType.X86">
13739 <member name="F:PEFile.MachineType.ia64">
13744 <member name="F:PEFile.MachineType.ARM">
13749 <member name="F:PEFile.MachineType.Amd64">
13754 <member name="T:PEFile.IMAGE_DATA_DIRECTORY">
13756 Represents a Portable Executable (PE) Data directory. This is just a well known optional 'Blob' of memory (has a starting point and size)
13759 <member name="F:PEFile.IMAGE_DATA_DIRECTORY.VirtualAddress">
13761 The start of the data blob when the file is mapped into memory
13764 <member name="F:PEFile.IMAGE_DATA_DIRECTORY.Size">
13766 The length of the data blob.
13769 <member name="T:PEFile.FileVersionInfo">
13771 FileVersionInfo represents the extended version formation that is optionally placed in the PE file resource area.
13774 <member name="P:PEFile.FileVersionInfo.FileVersion">
13779 <member name="T:PEFile.PEBuffer">
13781 A PEBuffer represents a buffer (efficient) scanner of the