Legacy code in CrashDebugHelper was dragging in SourceControl and AssetRegistry as dependencies for CrashReportClient.
This dependency is no longer needed, as internal crashes now always perform local symbolification (either via symbols built locally, or synced via UGS). Syncing symbols from Perforce or a network drive is no longer needed or used.
#rb Ben.Marsh
#rnx
[CL 9422370 by Jamie Dale in Dev-Core branch]
- Removed FPlatformProcess::IsApplicationAlive as it's just a combination of (FPlatformProcess::IsProcRunning(...) && !FPlatformProcess::GetProcReturnCode(...)), and the latter lets you get the return code of the monitored application.
- Note: Getting the return code is only supported on Windows.
- Updated FWindowsPlatformProcess::GetProcReturnCode to leave ReturnCode unchanged if the function returns false.
- This is consistent with Mac and Linux.
- Updated CrashReportClientApp to open the monitor PID during init and use that handle for the rest of the run.
- This avoids issues with PID re-use as you have a persistent handle to the process, and also avoids repeatedly opening a process handle.
- Note: This has no benefit on Mac or Linux, as FProcHandle is just a wrapper around a PID.
#rb Johan.Berg, Patrick.Laflamme, Sebastian.Nordgren
#rnx
[CL 9366830 by Jamie Dale in Dev-Core branch]
Add the same check to break out of the main loop when the upload is complete as is being used in the RunUnattended method.
#rb stefan.boberg
[CL 9314805 by Johan Berg in Dev-Core branch]
EditorSessionSummarySender and EditorAnalyticsSession now live in their own module so they can be instantiated from the CrashReportClient.
#jira UETOOL-1825
#rb chris.gagnon, jamie.dale
[CL 9197613 by sebastian nordgren in Dev-Core branch]
Enabled capturing assert crash type.
Fixed the session name being looked for when collecting disaster recovery files.
#rb Jamie.Dale
[CL 9163094 by Patrick Laflamme in Dev-Core branch]
* Removed crash reporter client usage of "request exit", since we need to be able to send multiple reports in monitor mode. For example a ensure followed by a crash.
* Fix missing parenthesis when deciding to attach recovery service file.
#rb patrick.laflamme
[CL 9093219 by Johan Berg in Dev-Core branch]
- The crash reporter client now depends on Concert
- When started in monitor mode, the main loop ticks.
- In case of crash, if the disaster recovery plugin was enabled in the client, the disaster recovery can be attached to the bug reports (currently off)
#rb Jamie.Dale
[CL 8929506 by Patrick Laflamme in Dev-Core branch]
Get GIsRequestingExit now by IsEngineRequestingExit()
Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit
The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling
#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland
#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)
(ushell-p4-cherrypick of 8658680 by brandon.schaefer)
[CL 8926683 by Martin Ridgers in Dev-Core branch]
Get GIsRequestingExit now by IsEngineRequestingExit()
Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit
The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling
#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland
#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)
[CL 8658680 by brandon schaefer in Main branch]
* Flush Crash report client analytics events when running in monitor mode. Previous behaviour was to send analaytics event whenever the crash report client exited. When running in monitor mode we will need to explicitly flush analytics events after every submission of crash/ensure event.
* Crash report client was not respecting "no dialog" flag set by the runtime, causing dialogs to appear for ensures, which should not display them.
* Allow multiple sends from crash report client. Since the CrashReportClient and CrashReportCoreUnattended classes both use GIsRequesting exit, reset this once a crash report has been sent, to allow consecutive reports to be sent.
* Trying to restart the game after crash would result in multiple instances. The client now captures the result of the user selection and exits accordingly.
* On certain crash types (e.x. general protection fault) the crash reporter would not display callstacks. This was due to a race condition between crash report client doing symbol resolving and when the game was trying print callstack to the log.
#rb patrick.lamflamme
#jira UE-79848, UE-79700, UE-79699
[CL 8653323 by Johan Berg in Dev-Core branch]
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: josh.markiewicz
#ROBOMERGE-SOURCE: CL 8321295 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v403-8382528)
[CL 8395450 by robert manuszewski in Dev-Core branch]
With this change an additional mode is added to crash reporter client, that allows it to run as a monitoring child process. Additionally stack walking and symbol resolution is moved to this new process on Windows. To support this several changes in stack walking had to be made to allow external processes to be queried. All other platforms remain unchanged.
#jira UECORE-482, UE-72081, UE-75336
#rb ben.marsh, brandon.schaefer, patrick.laflamme
[CL 8395425 by Johan Berg in Dev-Core branch]
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none
[CL 8321295 by Josh Markiewicz in Main branch]
Remove old CrashReportHelper
Move files dealing with crash upload and reporting to Runtime/CrashReportCore from CrashReportClient
Addition of CrashReporter Plugin in Fortnite for use with IOS
#rb brandon.schaefer, chris.bunner
#ROBOMERGE-OWNER: peter.sauerbrei
#ROBOMERGE-AUTHOR: peter.sauerbrei
#ROBOMERGE-SOURCE: CL 5814730 via CL 5814731 via CL 5814748 via CL 5817030
[CL 5817031 by peter sauerbrei in Main branch]