- When CRC runs out of process, instead of reading the current thread context of the crashed thread, read and use the crash context that was reported during the crash (which is different).
- Added an optional context parameter to FGenericPlatformStackWalk::CaptureThreadStackBackTrace(), implemented it across all platforms, but only used on Windows.
On Windows, fixed InitStackWalking() and InitStackWalkingForProcess() to reset the process that needs to be walked.
- CRC, running out of process may run its own process or the Editor process and which ever was walking first ruled out the other.
#jira UE-105006 - [CrashReporter] VCRUNTIME140!7fffce010000 + e390
#rb Johan.Berg
#preflight 15217159
[CL 15319737 by Patrick Laflamme in ue5-main branch]
This code is meant to help locate and send reports/telemetry for slow code pathways that create unresponsive conditions
FGameThreadHitchHeartBeatThreaded was considered, but doesn't fit Editor's needs because its designed around general GameThread deadlines
Editor workloads are much less homogenous, and proper async support for a consistent GameThread deadline in Editor is a ways away
This necessitates a more focused approach where we can instrument specific routines such that each issue their own telemetry report
Add a "Stalls" counter in the Frame Rate and Memory title bar stats
Add LogStall Log category for viewing details about stalls that have occurred
Introduces a stall counter object on the GameThread to collect statistical data about stalls (this will not report to telemetry)
Future changes will introduce report objects into specific routines to upload to crashreporter
Future changes will introduce support for non-Windows OSes
#jira none
#rb francis.hurteau
[CL 15213394 by geoff evans in ue5-main branch]
- Count number of crashes before Analytics get initialized and report them as DelayedCrashCount field of the Editor summary session event.
#rb Jamie.Dale
[CL 15128718 by Patrick Laflamme in ue5-main branch]
- Prevented CrashReportClient from serializing the CrashContext to the memory buffer if it was already serialized once.
- Increased the default space reserved by memory buffer used to serialize the crash context from 32K to 128K because serializing the crash context of 'debug crash' command line in Editor uses up to 112K.
- Cleared the memory buffer before serializing the CrashContext in case it was serialized more than once preventing the internal buffer to grow needlessly. Also, the XML reader being limited, would only read the first one written, ignoring further and more recent ones appended.
#rb Johan.Berg
[CL 15037279 by Patrick Laflamme in ue5-main branch]
- Fixed the application title, getting it from the engine version rather than hardcoding it.
#rb Francis.Hurteau
[CL 13747857 by Patrick Laflamme in ue5-main branch]
#rnx
#rb none
#jira none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 13072767 via CL 13072777 via CL 13072783 via CL 13072864
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13072869 by ryan durand in Main branch]
- Implemented a special logger inside CrashReportClientEditor to capture and save important events such as crash reporting (along with the CrashGUID)
- When CrashReportClientEditor sends all the Editor summary events, if an error was detected in the session being sent, the mini-log for that session is attached to the analytic event.
#rb Chris.Gagnon, Jamie.Dale
#lockdown cristina.riverun
#ROBOMERGE-SOURCE: CL 12935952 in //UE4/Release-4.25/... via CL 12935970 via CL 12935996
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12936020 by patrick laflamme in Main branch]
- Added code to the Editor to detect and report when CrashReportClientEditor exited unexpectedly. (MonitorExceptCode 777005 is set in the Editor session summary event)
- Added a retrial loop to CrashReportClientApp to retry opening the the handle on the Editor process if the first time fails.
#rb Jamie.Dale
#lockdown cristina.riverun
#ROBOMERGE-SOURCE: CL 12878012 in //UE4/Release-4.25/... via CL 12878014 via CL 12878016
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12878017 by patrick laflamme in Main branch]
#rnx
#rb none
#jira none.
#ROBOMERGE-SOURCE: CL 12778165 in //UE4/Release-4.25/... via CL 12778172 via CL 12784352
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12786616 by patrick laflamme in Main branch]
#rb trivial
#rnx
#jira none
#ROBOMERGE-SOURCE: CL 12762568 in //UE4/Release-4.25/... via CL 12762575 via CL 12784299
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12786526 by patrick laflamme in Main branch]
#rb Trivial
#jira none.
#ROBOMERGE-SOURCE: CL 12754568 in //UE4/Release-4.25/... via CL 12754572 via CL 12783851
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12786382 by patrick laflamme in Main branch]