TSAN cannot reason about reading Cursor of the buffer before writing to EtxOffset, which is what releases the buffer to be reaped and eventually recycled. Read the cursor in atomic manner in order to appease TSAN.
#rb martin.ridgers
#jira UE-214738
[CL 34118491 by johan berg in ue5-main branch]
Synchronizing TraceLog statistics is not critical functionality and will introduce more complexity. Disables statistics reporting when thread sanitizer is enabled.
#jira UE-214111, UE-215211, UE-215183, UE-215185
#rb johan.berg
[CL 34118341 by johan berg in ue5-main branch]
Rearrange the order of messages so that the order goes from informational to increased seriousness and categorize by value. Also add a fatal category which implies catastrophic stop of the tracing application.
#rb ionut.matasaru
[CL 34062436 by johan berg in ue5-main branch]
When running multiple instances on one the same machine TraceLog searches for an open port to listen to control commands, but there was no way for the user to know which port each process ended up using. Add log entries that print the final listening port.
#jira UE-192404
#rb ionut.matasaru
#ushell-cherrypick of 26918370 by tuo.chen
[CL 34008304 by johan berg in ue5-main branch]
- TraceLog is intentionally meant to not depend on Core, but autortfm instrumentation requires Core
- if this causes issues with autortfm code, that stuff needs to be isolated from autortfm, outside of TraceLog itself
#rb Brandon.Schaefer, Markus.Breyer
[CL 33727798 by michael nicolella in ue5-main branch]
If a module depends on Core and does not want the overloads it needs to add the private define SUPPRESS_PER_MODULE_INLINE_FILE or set PER_MODULE_INLINE_FILE to point to a different file
[CL 33709297 by henrik karlsson in ue5-main branch]
On some platforms we use an internal send buffer to reduce network overheads. When a trace is active and a snapshot was triggerered the send buffer could be flushed while writing the snapshot, making the ongoing trace miss events. To fix this add a forced flush right before creating the snapshot handle.
#rb Martin.Ridgers
#jira UE-211694
[CL 33626357 by johan berg in ue5-main branch]
By setting UE_TRACE_PACKET_VERIFICATION this mode embeds a serial numbers after each packet. Note that this makes analysis incompatible with traces recorded without this mode. Strictly useful for investigating potential package loss.
#rb ionut.matasaru
[CL 33598542 by johan berg in ue5-main branch]
Channels have an internal uint32 id. Expose this when enumerating channels, and provide method to toggle channels by id.
#rb ionut.matasaru
[CL 33258172 by johan berg in ue5-main branch]
- Removed function FChannel::EnumerateChannels deprecated since UE 5.2.
- Fixed / updated comments for UE::Trace::FChannel class.
- TraceAux: Made the warning message emitted when disabling a read only channel to be an error. Also update the error messages for enabling/disabling read only channels.
- TraceAux: Fixed comments in TraceAuxiliary API.
- TraceAux: Removed unused private function in TraceAuxiliary.
- TraceAux: Minor refactoring / code cleanup.
#rb Johan.Berg
[CL 32248380 by ionut matasaru in ue5-main branch]
If memory tracing is enabled we need to make sure that both the enter uid and the event header fits into the current buffer. Otherwise it's possible that while requesting a new buffer and one has to be allocated, allocation trace events are inserted between the enter uid and the event. The result is that allocation event is incorrectly marked as a scope.
#rb martin.ridgers, ionut.matasaru
#jira UE-200495
[CL 30259854 by johan berg in ue5-main branch]
Removing error message when reading from non-blocking sockets. This will return EAGAIN which is expected.
#rb none
[CL 27631511 by johan berg in ue5-main branch]