Commit Graph

13 Commits

Author SHA1 Message Date
Marc Audy
aed1f9acc9 Fix CrashReporter shadow variables
#lockdown Zachary.EdgertonJones

[CL 2521930 by Marc Audy in Main branch]
2015-04-22 17:58:53 -04:00
Mark Satterthwaite
88751c6da8 Rewritten debug symbol handling for OS X to allow creation of dSYM bundles & symbol stripping of executables.
- 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]
2015-03-02 10:21:50 -05:00
Jaroslaw Surowiec
c992fa1169 CrashDebugHelper - Removed all obsolete functionality, will reimplement later, cleaned a lof of stuff, better support for network builds
[CL 2466180 by Jaroslaw Surowiec in Main branch]
2015-03-02 07:52:38 -05:00
Mark Satterthwaite
8ab2597ffb On OS X use PLCrashReporter instead of our own signal handlers as it is considerably more reliable.
- 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]
2015-03-02 07:34:19 -05:00
Jaroslaw Surowiec
ea397fe6a8 CrashDebugHelper - Added support to processing crashes where builds are not placed in P4, but only in the network drive
[CL 2415217 by Jaroslaw Surowiec in Main branch]
2015-01-22 08:03:55 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Mark Satterthwaite
00caa20d6d Fix parsing of initial OS version string in Mac OS X (i.e. 10.10).
#codereview michael.trepka

[CL 2299373 by Mark Satterthwaite in Main branch]
2014-09-16 10:24:07 -04:00
Mark Satterthwaite
4cde193448 Cache the symbolisation structures when symbolising crash reports on Mac OS X to speed the process up a bit. Only makes sense in the crash reporting case, since loading symbols from a running process is already very quick.
#codereview michael.trepka

[CL 2289258 by Mark Satterthwaite in Main branch]
2014-09-08 09:25:29 -04:00
Mark Satterthwaite
18ad98390e Amend Mac crash reporting to emit data into the FCrashInfo structure and output using FCrashInfo's GenerateReport function. Add necessary parsing code to hoist out PID, Exception Code, number of cores etc. Fix various bugs that were preventing the output from being displayed & remove a redundant comment from LaunchMac.
#codereview michael.trepka

[CL 2289230 by Mark Satterthwaite in Main branch]
2014-09-08 09:01:00 -04:00
Mark Satterthwaite
cc9e0b6dba Better reporting of broken stack entries in Mac OS X crash reports including hardening the crash debug helper.
#codereview michael.trepka

[CL 2286429 by Mark Satterthwaite in Main branch]
2014-09-05 12:46:40 -04:00
Mark Satterthwaite
631e8b9b8f Need to switch to symbolicating the crash log in the crash reporter since CoreSymbolication is unsafe within a crash handler. Store in the Apple format so that the work to parse the dump can be re-used to parse crash reports from the Mac App Store where our crash reporter might not work.
[CL 2284652 by Mark Satterthwaite in Main branch]
2014-09-04 12:10:15 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00