- This CL also exports the PLCrashReporter dump from binary format to text so that it is legible without further processing.
[CL 2610391 by Mark Satterthwaite in Main branch]
#UE4 Reducing dependencies on Version.h
#platformnotify Josh.Adams
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2585810 by Bob.Tellez on 2015/06/12 11:30:33.
[CL 2585846 by Bob Tellez in Main branch]
UECORE-164/Source context is not working properly for crashes from the UE4 releases
UE-13693/frequent crashes give "No disk in drive" error
UE-15369/UE-Various: Been getting "There is no Disk in the drive" crashreporter error. On orion the message is there permeneantly.
[CL 2558844 by Jaroslaw Surowiec in Main branch]
- The MacToolChain will emit dSYMs and strip executables when the UBT configuration enables bGeneratedSYMFile, just like iOS.
- Symbol stripping requires generating dSYMs to prevent creation of non-debuggable builds whose crash reports would be unresolvable.
- To avoid a dependency on the Private framework CoreSymbolication all symbols from that framework are loaded dynamically & can only be used within programs, not the game or the editor, as CoreSymbolication is incompatible with non-ANSI malloc implementations.
- Added an initial platform-agnostic API for querying debug symbol info, including a generic database format that can be queried on otherwise incompatible platforms.
- Added UnrealAtoS that emulates Apple's atos to resolve symbols using the generic database or the platform API (CoreSymbolication on OS X) which on OS X is used by the editor to gather symbol info for CodeView.
- Added DSymExporter which will export Apple debug symbol data from Mach-O binaries, including the payload within a .dSYM bundle, to the generic format so that the crash report server may one day read the data without needing a Mac to symbolicate reports.
- Initial SymbolDebugger & MinidumpDiagnostics support on OS X.
#codereview michael.trepka, Jaroslaw.Surowiec, lee.clark, peter.sauerbrei
[CL 2466299 by Mark Satterthwaite in Main branch]
- FMacPlatformProcess::IsSandboxedApplication will return true if and only if the application is running within an OS X application sandbox, this can be used to ensure that UE4 only accesses sandbox-safe APIs.
- The crashed application isn't held open waiting for the crash reporter as if you try it will then crash again in Apple's XPC code after exiting waitpid (with or without PLCrashReporter) & I've not yet been able to determine why.
- We can use a new 10.10 NSProcess call to access the OS version number - no need to access the CoreServices plist unless we want the build number (unavailable within the sandbox).
- Fixed some symbolication bugs, PLCrashReport crash reports will symbolicate reliably.
- We can't copy the crash text to the clipboard when handling an actual crash in OS X as that the code requires Objecive-C which is incompatible with POSIX-signal or Mach-O exception handling routines & will hang or crash the application again. This often results in an application icon that cannot be removed from the Dock & requires a force-restart of the machine.
#codereview michael.trepka
[CL 2466174 by Mark Satterthwaite in Main branch]