ionut matasaru
619e6f4d4a
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
[CL 17469346 by ionut matasaru in ue5-main branch]
2021-09-09 05:01:09 -04:00
Martin Ridgers
54d117c581
Restrict trace store client to only resolve IPv4 addresses. Previously the resolve would look up IPv6 addresses for the given host leading to stalls.
...
#rb jb
#rnx
[CL 17443422 by Martin Ridgers in ue5-main branch]
2021-09-07 08:32:03 -04:00
Martin Ridgers
ac70c1cfc8
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
[CL 17419538 by Martin Ridgers in ue5-main branch]
2021-09-03 08:32:31 -04:00
Martin Ridgers
f8e174443c
Signed/unsigned mismatch
...
#rb jb
#rnx
[CL 17417943 by Martin Ridgers in ue5-main branch]
2021-09-03 04:35:00 -04:00
Martin Ridgers
c639006b71
Added an IsUidValid() method.
...
#rb jb
#rnx
[CL 17417897 by Martin Ridgers in ue5-main branch]
2021-09-03 04:31:47 -04:00
Martin Ridgers
a82b8cba0a
Changed the aux-data collector to use a modestly sized inline allocator.
...
#rb jb
#rnx
[CL 17417870 by Martin Ridgers in ue5-main branch]
2021-09-03 04:30:35 -04:00
Martin Ridgers
0eec3c0ac6
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
[CL 17397817 by Martin Ridgers in ue5-main branch]
2021-09-02 00:19:42 -04:00
martin ridgers
9641c74f10
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
#ROBOMERGE-BOT: (v855-17104924)
[CL 17231894 by martin ridgers in ue5-main branch]
2021-08-19 08:08:40 -04:00
Martin Ridgers
668d426781
Scoped trace events were firing their leave events to analyzers with an invalid thread info pointer.
...
[CL 17098027 by Martin Ridgers in ue5-main branch]
2021-08-08 17:19:29 -04:00
Martin Ridgers
d2461d77db
Undid prior submit as it was a little misguided.
...
[CL 17082705 by Martin Ridgers in ue5-main branch]
2021-08-06 09:54:52 -04:00
Martin Ridgers
5cd5776ee1
Resolve any ambiguity between the different versions of the trace protocols' structs.
...
[CL 17080696 by Martin Ridgers in ue5-main branch]
2021-08-06 04:14:50 -04:00
Martin Ridgers
96c334efc5
A little tidy around the updating a thread's event scope book keeping.
...
[CL 17066821 by Martin Ridgers in ue5-main branch]
2021-08-05 07:16:44 -04:00
Martin Ridgers
44cd7918bc
A case of copy-paste caused analyzers to not receive the scoped trace events they had subscribed to.
...
[CL 17065995 by Martin Ridgers in ue5-main branch]
2021-08-05 05:27:03 -04:00
Martin Ridgers
29ca715492
Flipped GetThreadId()'s return type to be unsigned.
...
#rnx
[CL 17048295 by Martin Ridgers in ue5-main branch]
2021-08-04 07:45:44 -04:00
Martin Ridgers
e3629a017c
Removed a redundant comment.
...
#rnx
[CL 16994792 by Martin Ridgers in ue5-main branch]
2021-07-29 08:59:49 -04:00
Martin Ridgers
217b578502
Older trace protocols had synchronised new-event events so we can't short-circuit those events.
...
#rnx
[CL 16994788 by Martin Ridgers in ue5-main branch]
2021-07-29 08:58:34 -04:00
Martin Ridgers
eddd4680e5
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
[CL 16994617 by Martin Ridgers in ue5-main branch]
2021-07-29 08:51:16 -04:00
Martin Ridgers
7c36e1e935
The wrong protocol stage was being used for older protocol-2 and protocol-3 traces
...
#rnx
[CL 16994501 by Martin Ridgers in ue5-main branch]
2021-07-29 08:35:36 -04:00
Martin Ridgers
57dfb01074
Fixed segfault when analysing old protocol-0 traces.
...
#rnx
[CL 16994476 by Martin Ridgers in ue5-main branch]
2021-07-29 08:31:27 -04:00
Martin Ridgers
3b1662a4f4
Allow externally-construct trace event types to be added into the type registry.
...
#rnx
[CL 16994468 by Martin Ridgers in ue5-main branch]
2021-07-29 08:29:56 -04:00
Martin Ridgers
6cacb8e677
Unchecked versions of methods to get a pointer to the data in a trace stream. While redundant on the surface, they will help to indicate when there is an expectation that enough data is known to be available.
...
#rb trivial
#rnx
[CL 16979495 by Martin Ridgers in ue5-main branch]
2021-07-28 03:41:05 -04:00
Martin Ridgers
33a54c5351
Added a method to return the number of bytes remaining in a stream of trace data
...
#rb trivial
#rnx
[CL 16979476 by Martin Ridgers in ue5-main branch]
2021-07-28 03:36:35 -04:00
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