UPLAT-685 (Remove Virtual File System to reduce run-time memory overhead and allow for larger worlds in HTML5)
#codereview josh.adams, james.moran
[CL 2505577 by Ankit Khare 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]
- Ugly hack to get obsolete GL stuff compiled for splash.
- LND binary added to noredist folder for now.
- A lot of pre-built binaries built on added.
[CL 2292785 by Dmitry Rekman in Main branch]
- Minor fixes, Linux-specific additions (like preferred source code accessor setting or building ForsythTriOO) and tweaks (log level, etc).
#codereview Josh.Adams
[CL 2237893 by Dmitry Rekman in Main branch]
#ttp 330039 EDITOR: Platform-agnostic editor code depends on Windows-only VSAccessor headers
#detail Source code access is now extensible via plugins, so any new editors can be easily added.
#add Added SourceCodeAccess module that routes access via plugins.
#change Moved much of the old VSAccessor code into a new VisualStudioSourceCodeAccess plugin.
#add Added a counterpart XCode plugin & migrated the code from FSourceCodeNavigation (Applescript etc.) into there.
#remove Removed applescript for XCode access (it is now done via code).
#remove Removed source code access functionality from platform layer.
#add Added details customization for source code access settings, so users can choose their own accessor.
#remove Removed dependencies on VSAccessor.
#change Changed API in SWidget to not require building a string to be parsed, instead this acesses and forwards filenames & line numbers.
#extra Tested on Mac by Mark S.
reviewed by Andrew.Brown
[CL 2048697 by Thomas Sarkanen in Main branch]