Commit Graph

44 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
PaulEremeeff
c9a246101e PR #1013: Fixing PVS-Studio warnings. (Contributed by PaulEremeeff)
Some files have been omitted and will be submitted with modified corrections

[CL 2505544 by Dan Oconnor in Main branch]
2015-04-08 14:46:25 -04:00
Jaroslaw Surowiec
c1340a6cc9 CrashDebugHelper - Added support for Fortnite
[CL 2495021 by Jaroslaw Surowiec in Main branch]
2015-03-28 08:27:58 -04:00
Jaroslaw Surowiec
308b42ff2f CrashDebugHelper - Fixed source context showing bad source
[CL 2471882 by Jaroslaw Surowiec in Main branch]
2015-03-07 06:46:11 -05:00
Jaroslaw Surowiec
1e90f8618e CrashDebugHelper - Added support for indexed depot/PDB cache, will be used by multiple instance of the crash processor
[CL 2467797 by Jaroslaw Surowiec in Main branch]
2015-03-03 12:24:16 -05:00
Saul Abreu
79a26091bf Fixed behavior on FString::ParseIntoArray (muliple delimiters overload) functionality to support optionally culling empty strings. Greatly simplified implementation logic. Output parameter now properly named and taken by reference.
#codereview Steve.Robb, Robert.Manuszewski

[CL 2466824 by Saul Abreu in Main branch]
2015-03-02 15:51:37 -05: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
Jaroslaw Surowiec
e802d82bd0 CrashReport - Optimized FWindowsPlatformStackWalkExt::SetSymbolPathsFromModules, should be faster, removed recursion, optimized GetCallstacks to not use stack memory, now that code can be executed in thread pool where stack size is 32kb
[CL 2410655 by Jaroslaw Surowiec in Main branch]
2015-01-19 04:02:38 -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
Jaroslaw Palczynski
9ca96368c2 GitHub 434 : FDataBaseConnection-based SQLite support
[CL 2344875 by Jaroslaw Palczynski in Main branch]
2014-10-30 10:03:30 -04:00
Jaroslaw Surowiec
c65c370e75 CrashReport - Tweaked PDB cache configuration to use less HDD space
[CL 2324107 by Jaroslaw Surowiec in Main branch]
2014-10-09 11:26:31 -04: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
Michael Trepka
4fb445c4e9 More fixes for Clang warnings
[CL 2244821 by Michael Trepka in Main branch]
2014-08-05 18:02:04 -04:00
Jaroslaw Surowiec
50f1b5f59e CrashReport - Fixed a typo
[CL 2228652 by Jaroslaw Surowiec in Main branch]
2014-07-23 12:30:35 -04:00
Jaroslaw Surowiec
bc01c16c09 CrashReport - Compilation fixes for SymbolDebugger
[CL 2227092 by Jaroslaw Surowiec in Main branch]
2014-07-22 11:50:18 -04:00
Jaroslaw Surowiec
57cc0c7ce6 CrashReport - Fixed a problem with the execution order
[CL 2226674 by Jaroslaw Surowiec in Main branch]
2014-07-22 04:28:46 -04:00
Jaroslaw Surowiec
e803ec6c19 CrashReport - Sync modules and PDB Cache should work even if the network build has been removed, but a PDB cache entry is on the local drive
[CL 2225650 by Jaroslaw Surowiec in Main branch]
2014-07-21 12:10:04 -04:00
Jaroslaw Surowiec
58d4d0ca00 CIS fix
[CL 2223283 by Jaroslaw Surowiec in Main branch]
2014-07-18 10:11:02 -04:00