Martin Ridgers
47783d686d
Moved trace's transport enums into their own include file.
...
#rb jb
#rnx
[CL 15929693 by Martin Ridgers in ue5-main branch]
2021-04-06 09:35:47 -04:00
Martin Ridgers
5f768247a4
Fixed PVS-Studio analysis warning.
...
#jira UE-106046
#rb trivial
#rnx
[CL 15047378 by Martin Ridgers in ue5-main branch]
2021-01-12 04:25:33 -04:00
Martin Ridgers
33b3b9d0db
Indicate when it is okay for analysis to derive the starting log serial. This mitigates against cases where the data sent in one update of the run time has fragmented delivery when analysed (e.g. due to TCP overhead or read buffer sizes). Fragmentation results in analysis making decisions based on a partial view of the world.
...
#rb none
#rnx
[CL 15035044 by Martin Ridgers in ue5-main branch]
2021-01-11 04:15:10 -04:00
Martin Ridgers
4c8225b424
An alternative API for reading fields' values. A opaque handle can be retrieved when an event is first described instead of hashing a string and traversing a table for each GetValue() call. Bast-case can be an instruction or two instead of much work.
...
#rb none
#rnx
[CL 15034179 by Martin Ridgers in ue5-main branch]
2021-01-10 16:26:31 -04:00
Martin Ridgers
2cf9a89ea2
Moved event data pointer to the start of an internal struct so it is a little bit easier to find from the outside.
...
#rb none
#rnx
[CL 15034159 by Martin Ridgers in ue5-main branch]
2021-01-10 16:18:43 -04:00
Martin Ridgers
5a6316dbf8
Fixed pointer invalidation when new thread events were received.
...
Events marked as important are associated internally to a pseudo thread with id 0 [A]. New-thread events are considered important and thus appear as if they were traced on thread 0. They will add thread N which will modify the Infos array. If someone was holding a A& = Infos[0] when Infos[N] was added then A can become stale. To combat this edge-case we'll thread 0 as a special case so it doesn't invalidate itself with its own events.
#rb arciel.rekman (indirectly)
#rnx
[CL 14989274 by Martin Ridgers in ue5-main branch]
2021-01-05 05:37:24 -04:00
Martin Ridgers
e5c40b10b8
Trace's analysis' FThreads::GetInfo() was always returning thread 0 (the important "thread"). Since they were marked as important, thread-info events have no longer been sent on the thread the present but instead carry the thread ID in a field.
...
#rb none
#rnx
[CL 14968643 by Martin Ridgers in ue5-main branch]
2020-12-30 06:06:38 -04:00
Martin Ridgers
67d7dcba9b
Homogenised return type of Thread::GetInfo() across all its overloads.
...
#rb none
#rnx
[CL 14968631 by Martin Ridgers in ue5-main branch]
2020-12-30 05:35:41 -04:00
Martin Ridgers
be972be826
Moved the Trace namespace into the UE namespace.
...
#rb jb
#rnx
[CL 14762673 by Martin Ridgers in ue5-main branch]
2020-11-17 06:54:28 -04:00
Martin Ridgers
71f829c710
Simple provision for prefixing metadata at the start of a trace stream
...
#rb jb
#rnx
[CL 14750258 by Martin Ridgers in ue5-main branch]
2020-11-16 04:06:18 -04:00
Martin Ridgers
889b2d647c
Implementation of Trace's important events. Some events are only traced once. CPU scope names or log format strings for example. Those trace-once events get lost if a user then connects to trace late (or reconnects a second time). To combat that important events are traced to a separate stream internally so that they can be identified, cached off to one side, and resent when a connection is first established.
...
#rb johan.berg
#rnx
[CL 14572080 by Martin Ridgers in ue5-main branch]
2020-10-26 03:29:23 -04:00
Marcus Wassmer
3b81cf8201
Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
...
autoresolved files
#rb none
[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
11f5b21210
Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
...
#rnx
[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
Stefan Boberg
55a8b15f1f
Copying //UE4/Dev-Core to Main (//UE4/Main)
...
#rb none
[CL 11258477 by Stefan Boberg in Main branch]
2020-02-05 14:26:36 -05:00
Martin Ridgers
f82864c80a
Explicitly end analysis on exit from the inner loop. Doing it implicitly in the destructor opens up the analysis framework for order of destruction problems.
...
#rb trivial
#rnx
[CL 11154133 by Martin Ridgers in Dev-Core branch]
2020-01-29 08:18:18 -05:00
Thomas Sarkanen
3d5d6697a6
Added TArrayView access support for array fields
...
Also fixed div-by-zero in Num() when a field does not exist
#rb Martin.Ridgers
[CL 11041970 by Thomas Sarkanen in Dev-Core branch]
2020-01-17 07:31:56 -05:00
Johan Berg
6e8c16c4b7
Trace channels
...
This change introduces the concept of "channels" to TraceLog. When an event is emitted a channel now needs to be supplied. Channels are disabled by default and can be be enabled individually, allowing the user to limit the amount of events the tracing application produces. Channels can be enabled by the recording application (e.g. UnrealInsights) or enabled by default using a commandline argument, "-tracechannels" to enable a comma separated list of channels.
There are two new events related to channels, the announce event describing the channel, and the toggle event which notifies any changes in state. Note that all channels are enabled during static initialization in order to guarantee that any event emitted during that phase is recorded.
#rb martin.ridgers, ionut.matasaru
[CL 10950760 by Johan Berg in Dev-Core branch]
2020-01-13 07:16:09 -05:00
ryan durand
84e0b188d8
Updating copyright for Engine Developer.
...
#rnx
#rb none
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902 via CL 10870584
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v626-10872990)
[CL 10897060 by ryan durand in Dev-Core branch]
2020-01-07 15:07:57 -05:00
ryan durand
471d972e62
Updating copyright for Engine Developer.
...
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
Johan Berg
c2f3229f0c
Fix issue with undefined events types.
...
When event types that are not yet know is encountered in a buffer, switch to other buffers to read up until the type is encountered.
#rb martin.ridgers
[CL 10808580 by Johan Berg in Dev-Core branch]
2019-12-19 07:12:34 -05:00
Robert Manuszewski
7b6f840f7f
Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
...
#rb none
[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00
Martin Ridgers
930f375759
Validate an event's ID before doing anything else with it.
...
#rb tricial
#rnx
[CL 10635163 by Martin Ridgers in Dev-Core branch]
2019-12-10 08:36:28 -05:00
Martin Ridgers
4f45f29b52
Fixed incorrect return value if no header's found. That's not a failure.
...
#rb tribial
#rnx
[CL 10634983 by Martin Ridgers in Dev-Core branch]
2019-12-10 07:26:08 -05:00
Martin Ridgers
ced2caaf78
Assigned more bits to the event serial numbers to prevent confusion during analysis when it wraps around.
...
#rb none
#rnx
#ushell-unshelve of 10634350
[CL 10634881 by Martin Ridgers in Dev-Core branch]
2019-12-10 06:21:14 -05:00
Martin Ridgers
490e598178
Expose Trace's internal ThreadId to analyzers. Note that this will not the same as the OS' thread id.
...
#rb none
#rnx
#ushell-unshelve of 10632436
[CL 10632722 by Martin Ridgers in Dev-Core branch]
2019-12-10 03:11:20 -05:00