Commit Graph

91 Commits

Author SHA1 Message Date
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
Martin Ridgers
80d5f05111 Fixed divergence of protocol version numbers between Main and Dev-Core.
#rb trivial
#rnx

[CL 10589805 by Martin Ridgers in Dev-Core branch]
2019-12-06 04:36:46 -05:00
Martin Ridgers
3705f07d22 Implemented dynamically sized array-type fields for trace events.
#rb none

[CL 10478704 by Martin Ridgers in Dev-Core branch]
2019-11-28 11:30:28 -05:00
Martin Ridgers
cd8f24b21a Extended trace protocol so events can be marked as possibly expecting auxilary data. Such events are terminated with a null byte so if the following byte is non-zero it is expected to be an additional payload for the event. Nothing is currently using this.
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10478300 by Martin Ridgers in Dev-Core branch]
2019-11-28 08:04:10 -05:00
Martin Ridgers
dc9787ea8c Send the important flag one the one-time trace event that describes and event instead of tagging each event sent
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10477742 by Martin Ridgers in Dev-Core branch]
2019-11-28 04:08:28 -05:00
Martin Ridgers
901707327b Moved the enum of known event IDs into the protocol so it can be changed while maintaining backwards compatibility.
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10477715 by Martin Ridgers in Dev-Core branch]
2019-11-28 03:32:18 -05:00
Martin Ridgers
dffee30340 Build field's properties outside of the dispatch builder so that different protocol versions can adapt to suit
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10470513 by Martin Ridgers in Dev-Core branch]
2019-11-27 11:27:27 -05:00
Martin Ridgers
c8872777a7 Encapsulated the look up of a field's index by name into a method of FDispatch.
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10470137 by Martin Ridgers in Dev-Core branch]
2019-11-27 11:16:39 -05:00
Martin Ridgers
06bcc0ffe9 Let's not sort fields. We're not leveraging the sorted order and we will soon be relying on field indices so it'd be convenient to keep the original order.
#rb none
#rnx
#ushell-unshelve of 9957048

[CL 10468501 by Martin Ridgers in Dev-Core branch]
2019-11-27 10:14:05 -05:00
Stefan Boberg
d2f9a61b06 Copy-up from Dev-Core
#rb none

[CL 10419044 by Stefan Boberg in Main branch]
2019-11-25 12:03:09 -05:00
Martin Ridgers
9c5edb26bb Don't increment the log serial until the full event can be processed.
#rb none
#rnx

[CL 10385428 by Martin Ridgers in Dev-Core branch]
2019-11-24 08:56:29 -05:00
Martin Ridgers
a59776ecd8 Resynchronised traced events across threads by using a rolling serial number. The coordination of the serialised order happens at analysis time.
#rb none
#rnx

[CL 10241774 by Martin Ridgers in Dev-Core branch]
2019-11-15 09:28:16 -05:00
Martin Ridgers
79b8a7d48f Having these as scoped enums really doesn't work very well when their purposes to give some symantic meaning to bytes in a stream received across the wire.
#rb none
#rnx

[CL 10236876 by Martin Ridgers in Dev-Core branch]
2019-11-15 08:47:47 -05:00
Martin Ridgers
2c7a039131 Store the protocol version instead of comparing function pointers
#rb none
#rnx

[CL 10236834 by Martin Ridgers in Dev-Core branch]
2019-11-15 08:36:49 -05:00