Commit Graph

19 Commits

Author SHA1 Message Date
Martin Ridgers
12df3999e2 Over time the framework behind the analysis of traces has grown reactively and organically without little thought to structure. The monolithic class has been refactored to derive some structure that will ease future maintenance (and protocol changes in particular).
#rb johan.berg
#jira ue-114532
#rnx

[CL 16979281 by Martin Ridgers in ue5-main branch]
2021-07-28 02:24:21 -04:00
Martin Ridgers
e21a54a5a6 A strategic balancing of an End() call with a Begin() call.
#rb jberg
#jira UE-114532
#rnx

[CL 16966340 by Martin Ridgers in ue5-main branch]
2021-07-27 04:32:25 -04:00
Martin Ridgers
3fb2b8b6b3 Moved a few classes out of FAnalysisEngine's scope.
#rnx

[CL 16670167 by Martin Ridgers in ue5-main branch]
2021-06-15 02:55:20 -04:00
Martin Ridgers
60c59e13e2 Extend lifetime of thread info objects. Previously there was a slim chance that they would get moved while someone else was holding on to a pointer to them.
#rb jb
#rnx

[CL 16192808 by Martin Ridgers in ue5-main branch]
2021-05-04 09:01:07 -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
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
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
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
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
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
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
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
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
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Stefan Boberg
8607ecb30d Copying //UE4/Dev-Core to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 6815521 by Stefan Boberg in Main branch]
2019-06-03 15:32:00 -04:00
Martin Ridgers
a8cbde104e Addressed copyright notice false positives.
#rb none

[CL 6532994 by Martin Ridgers in Dev-Core branch]
2019-05-16 04:54:01 -04:00
Martin Ridgers
649c7c0200 Copy up of Unreal Insights from //Tasks/UE4/Dev-Core-Trace.
#rb none

[CL 6426511 by Martin Ridgers in Dev-Core branch]
2019-05-13 09:05:12 -04:00