Commit Graph

136 Commits

Author SHA1 Message Date
ionut matasaru
0b79759b8d Fixed dispatch of events with auxiliary data for the new protocol version (5).
Added bounds checking when reading (skipping) the metadata in front of trace file.

#rb Martin.Ridgers
#preflight 6139be0c48e4950001410cad

#ROBOMERGE-AUTHOR: ionut.matasaru
#ROBOMERGE-SOURCE: CL 17469346 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17469379 by ionut matasaru in ue5-release-engine-test branch]
2021-09-09 05:03:58 -04:00
martin ridgers
7efe89bacc Explicitly terminate runs of aux data blocks with a well-known "aux data terminal" event. Previously a null byte was used. Each aux data block would write the null. Subsequent blocks would overwrite the prior block's null, effectively pushing the null to the end of a run aux data. However, if a different event was traced in the middle of the run it too would overwrite the null and corrupt the stream. With an explicit terminal event, structure can be recovered regardless of any multiplexing.
Serial numbers are no longer perscriptive (i.e. there can be gaps).

Normal trace events' headers are 50% smaller.

#jira ue-114532
#rb johan.berg
#preflight 6131df894f2c7c00016bf83c

#ROBOMERGE-SOURCE: CL 17419538 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17419569 by martin ridgers in ue5-release-engine-test branch]
2021-09-03 08:34:16 -04:00
martin ridgers
011e395cb7 Signed/unsigned mismatch
#rb jb
#rnx

#ROBOMERGE-SOURCE: CL 17417943 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17417944 by martin ridgers in ue5-release-engine-test branch]
2021-09-03 04:35:12 -04:00
martin ridgers
3e5bac29cb Added an IsUidValid() method.
#rb jb
#rnx

#ROBOMERGE-SOURCE: CL 17417897 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17417903 by martin ridgers in ue5-release-engine-test branch]
2021-09-03 04:31:56 -04:00
martin ridgers
5cd24a6633 Changed the aux-data collector to use a modestly sized inline allocator.
#rb jb
#rnx

#ROBOMERGE-SOURCE: CL 17417870 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17417875 by martin ridgers in ue5-release-engine-test branch]
2021-09-03 04:30:45 -04:00
martin ridgers
7fa2ad9332 Gaps can occur in event serial numbering when late connect happens because tail-tracing discards packets. When that happens, analysis stalls waiting for a serial number that never occurs. This case is detected by seeing what serial analysis is waiting for and if it is the same after some inertia, decide analysis was stuck. The previous inertia length was too small. Now it is bigger. Sorting of the rota also takes into account the wrap.
#jira ue-123734
#rb johan.berg
#rnx
#preflight 612f88324f89cc00011cfda8

#ROBOMERGE-SOURCE: CL 17397817 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17397823 by martin ridgers in ue5-release-engine-test branch]
2021-09-02 00:21:04 -04:00
martin ridgers
1150e2234f Tail-tracing (a ring-buffer of previously traced events) has resulted in holes in the serial numbering used to reconstruct event order when analyzing a trace stream. Previously the serials were always consecutive, but now that tail-tracing drops older packets of events, serial number holes can appear. To mitigate that, if the same serial number is still queued in the analysis rota after two updates, a hole is assumed and the expected serial number is adjusted.
#preflight 611e3f7e76f1fd000167ab62
#preflight 611e3f7e76f1fd000167ab62

#ROBOMERGE-SOURCE: CL 17231879 via CL 17231894
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17231908 by martin ridgers in ue5-release-engine-test branch]
2021-08-19 08:09:06 -04:00
martin ridgers
213492af4d Scoped trace events were firing their leave events to analyzers with an invalid thread info pointer.
#ROBOMERGE-SOURCE: CL 17098027 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17098029 by martin ridgers in ue5-release-engine-test branch]
2021-08-08 17:20:28 -04:00
martin ridgers
f4b7ad1ba0 Undid prior submit as it was a little misguided.
#ROBOMERGE-SOURCE: CL 17082705 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17082718 by martin ridgers in ue5-release-engine-test branch]
2021-08-06 09:57:23 -04:00
martin ridgers
d8c3b722e6 Resolve any ambiguity between the different versions of the trace protocols' structs.
#ROBOMERGE-SOURCE: CL 17080696 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17080722 by martin ridgers in ue5-release-engine-test branch]
2021-08-06 04:17:45 -04:00
martin ridgers
013eaffa54 A little tidy around the updating a thread's event scope book keeping.
#ROBOMERGE-SOURCE: CL 17066821 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17066828 by martin ridgers in ue5-release-engine-test branch]
2021-08-05 07:18:47 -04:00
martin ridgers
ac1bc9e6be A case of copy-paste caused analyzers to not receive the scoped trace events they had subscribed to.
#ROBOMERGE-SOURCE: CL 17065995 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v852-17065384)

[CL 17066022 by martin ridgers in ue5-release-engine-test branch]
2021-08-05 05:28:54 -04:00
martin ridgers
4ebbb9ff96 Removed a redundant comment.
#rnx

#ROBOMERGE-SOURCE: CL 16994792 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994795 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 09:00:03 -04:00
martin ridgers
95ff0451cb Older trace protocols had synchronised new-event events so we can't short-circuit those events.
#rnx

#ROBOMERGE-SOURCE: CL 16994788 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994790 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 08:58:44 -04:00
martin ridgers
aa40aea03e Ancient traces have no magic FourCC. We can say though that they definitely start with 01 00 00 00. So we'll use that as a FourCC to identfiy antique traces.
#rnx

#ROBOMERGE-SOURCE: CL 16994617 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994667 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 08:53:28 -04:00
martin ridgers
ccecae1930 The wrong protocol stage was being used for older protocol-2 and protocol-3 traces
#rnx

#ROBOMERGE-SOURCE: CL 16994501 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994504 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 08:36:02 -04:00
martin ridgers
30dbc1b987 Fixed segfault when analysing old protocol-0 traces.
#rnx

#ROBOMERGE-SOURCE: CL 16994476 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994482 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 08:32:30 -04:00
martin ridgers
a6b2033a16 Allow externally-construct trace event types to be added into the type registry.
#rnx

#ROBOMERGE-SOURCE: CL 16994468 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994481 by martin ridgers in ue5-release-engine-test branch]
2021-07-29 08:32:23 -04:00
martin ridgers
27c78d0d4b 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

#ROBOMERGE-SOURCE: CL 16979281 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16979283 by martin ridgers in ue5-release-engine-test branch]
2021-07-28 02:24:48 -04:00
martin ridgers
de07a4b813 A strategic balancing of an End() call with a Begin() call.
#rb jberg
#jira UE-114532
#rnx

#ROBOMERGE-SOURCE: CL 16966340 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16966341 by martin ridgers in ue5-release-engine-test branch]
2021-07-27 04:33:18 -04:00
martin ridgers
106541d9a8 Moved a few classes out of FAnalysisEngine's scope.
#rnx

#ROBOMERGE-SOURCE: CL 16670167 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v834-16658389)

[CL 16670169 by martin ridgers in ue5-release-engine-test branch]
2021-06-15 02:55:50 -04:00
martin ridgers
18ffba065c Removed a few redundant "using namespace" statements.
#rnx

#ROBOMERGE-SOURCE: CL 16654394 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16654398 by martin ridgers in ue5-release-engine-test branch]
2021-06-13 15:58:09 -04:00
martin ridgers
f097fe2089 Delete redundant variable.
#rnx

#ROBOMERGE-SOURCE: CL 16653294 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16653299 by martin ridgers in ue5-release-engine-test branch]
2021-06-13 02:18:12 -04:00
martin ridgers
b79ed2bad2 Added some Vim fold markers to help navigate this file more easily.
#rnx

#ROBOMERGE-SOURCE: CL 16638910 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16638964 by martin ridgers in ue5-release-engine-test branch]
2021-06-11 06:30:47 -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