Files
UnrealEngineUWP/Engine/Source/Programs/CrashReporter/CrashReportProcess/CrashReportProcessService.cs

192 lines
4.8 KiB
C#
Raw Normal View History

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
using Tools.CrashReporter.CrashReportCommon;
using Tools.CrashReporter.CrashReportProcess.Properties;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
namespace Tools.CrashReporter.CrashReportProcess
{
/// <summary>
/// A class to handle processing received crash reports for displaying on the website.
/// </summary>
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
partial class CrashReporterProcessServicer : ServiceBase
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
{
/// <summary>A class the handle detection of new reports.</summary>
public ReportWatcher Watcher = null;
/// <summary>A class to lazily process reports as they are detected.</summary>
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
public readonly List<ReportProcessor> Processors = new List<ReportProcessor>();
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
/// <summary>Current log file to write debug progress info to</summary>
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
public static LogWriter Log = null;
private static SlackWriter Slack = null;
public static StatusReporting StatusReporter = null;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
/// <summary>Folder in which to store log files</summary>
static private string LogFolder = null;
/// <summary>
/// Write a status update to the event log.
/// </summary>
static public void WriteEvent( string Message )
{
if( Message != null && Message.Length > 2 )
{
Log.Print( "[STATUS] " + Message );
}
}
/// <summary>
/// Write a status update to the event log, from the MinidumpDiagnostics.
/// </summary>
static public void WriteMDD( string Message )
{
if( Message != null && Message.Length > 2 )
{
Log.Print( "[MDD ] " + Message );
}
}
/// <summary>
/// Write a status update to the event log, from the P4.
/// </summary>
static public void WriteP4( string Message )
{
if( Message != null && Message.Length > 2 )
{
Log.Print( "[P4 ] " + Message );
}
}
/// <summary>
/// Write a failure to the event log.
/// </summary>
static public void WriteFailure( string Message )
{
if( Message != null && Message.Length > 2 )
{
Log.Print( "[FAILED] " + Message );
}
}
/// <summary>
/// Write an exception message to the event log.
/// </summary>
static public void WriteException( string Message )
{
if( Message != null && Message.Length > 2 )
{
Log.Print( "[EXCEPT] " + Message );
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602) ========================== MAJOR FEATURES + CHANGES ========================== Change 2946506 on 2016/04/18 by Steven.Hutton Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports. Change 3017807 on 2016/06/17 by Chris.Wood Improved Crash Report Process folder delete code as it could sometimes fail. [UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue Also added logging to Slack when stop request received instead of just when stop is complete. Change 3019367 on 2016/06/20 by Chris.Wood Improve Crash Report Process logging to track bad reads from S3. Also, better logging when CleanReport fails to delete folders. Change 3019376 on 2016/06/20 by Steve.Robb Clarification of assert message and comments which talk about 'null' TFunctions. Tidy-up of dead code. Change 3019409 on 2016/06/20 by Steve.Robb New Find and FindByPredicate algorithms for finding stuff in arbitrary containers. Change 3022658 on 2016/06/22 by Chris.Wood Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11) [UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue Also improved logging to Slack with better layout, fixed event ordering and counting duplicates. Change 3022840 on 2016/06/22 by Steve.Robb Skipped UHT attributes removed. Change 3022907 on 2016/06/22 by Robert.Manuszewski Fixing crash when adding a new C++ class to project #jira UE-32333 Change 3023169 on 2016/06/22 by Steve.Robb Checks for UTHINGs in skipped preprocessor blocks. Fixes for skipped UTHINGs and some other parsing accidents. #jira UE-31627 Change 3023239 on 2016/06/22 by Steve.Robb Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html Change 3026812 on 2016/06/24 by Mieszko.Zielinski Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4 Change 3028235 on 2016/06/27 by Robert.Manuszewski PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist) Change 3028282 on 2016/06/27 by Steve.Robb Fix for missing UFUNCTION check in skipped preprocessor blocks. #jira UE-31627 Change 3028284 on 2016/06/27 by Steve.Robb Debuggability improvements and coding standards changes. Change 3028343 on 2016/06/27 by Steve.Robb Fix for UHT error in WEX. #jira UE-32464 Change 3028393 on 2016/06/27 by Steve.Robb Fix for hot reload of enums finding the old enum. Fix to stop SPropertyEditorNumeric caching the enum flags. #jira UE-31658 Change 3030362 on 2016/06/28 by Robert.Manuszewski Fixing hang when cooking. Change 3030462 on 2016/06/28 by Steve.Robb Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild. #jira UE-32001 Change 3034341 on 2016/06/30 by Robert.Manuszewski Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report. Added 'debug twothreadsgpf' command to test the functionality. Change 3034342 on 2016/06/30 by John.Mahoney Fix for crash when loading an empty cached asset registry. #jira UE-32232 Change 3035599 on 2016/07/01 by Chris.Wood Added support for CrashType string to Crash Report Process. CRP v1.1.12 [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible. Added in missing crash context parameters that have been added to clients but not known by the server. Change 3035787 on 2016/07/01 by John.Mahoney Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h. #jira UE-30189 Change 3036933 on 2016/07/04 by Steve.Robb Proper forwarding constructor for FAsyncTask. Change 3036938 on 2016/07/04 by Steve.Robb Fix for CDO hot reload corrupting memory when replacing references inside structs. #jira UE-29335 Change 3036960 on 2016/07/04 by Steve.Robb Fix for FAnsiAllocator::ResizeAllocation when resizing to zero. Change 3037423 on 2016/07/05 by Steve.Robb FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool. Change 3037464 on 2016/07/05 by Steve.Robb HotReload.cpp cleanup: Deep nesting flattened. Linear array searches replaced with maps. FHotReloadModule::GetGameModules made into a non-member function and split into two. Comment and coding standard fixes. Change 3037741 on 2016/07/05 by John.Mahoney Fix for COTF not checking the correct timestamps on startup. #jira UE-31023 Change 3037846 on 2016/07/05 by Steve.Robb Fix for compile button disappearing on a bad compile. #jira UE-31575 Change 3037994 on 2016/07/05 by Steve.Robb Static analysis fixes: warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked. Change 3039186 on 2016/07/06 by Robert.Manuszewski Enabling crash callstack logging by default. Change 3039220 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot warning C6001: Using uninitialized memory 'UserNameLength' warning C6001: Using uninitialized memory 'DomainNameLength' Change 3039230 on 2016/07/06 by Steve.Robb Fix for VC internal compiler errors. Change 3039237 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read. Change 3039287 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter. warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'. warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'. warning C6031: Return value ignored: 'CoCreateInstance'. Change 3039359 on 2016/07/06 by Graeme.Thornton Compile error fix for FAsyncTask, courtesy of SteveR Change 3039534 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects. Change 3039545 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value. Change 3039578 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack. Change 3039623 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X' warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked. warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read. warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written. warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did. Change 3039630 on 2016/07/06 by John.Mahoney Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here. #jira UE-29123 Change 3039664 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written. warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written. Change 3039673 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'. Change 3039690 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X'. warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope. warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap. warning C6263: Using _alloca in a loop: this can quickly overflow stack. Change 3040868 on 2016/07/07 by Graeme.Thornton Config based class stripping for server builds Change 3040872 on 2016/07/07 by Graeme.Thornton Remove "return false" NeedsLoadForServer functions from engine code Change 3040997 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Landscape'. warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'. warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'. Change 3041004 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent. Change 3041014 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical. Change 3041111 on 2016/07/07 by Steve.Robb Removal of an obsolete error message about INI file case sensitivity. Change 3041150 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead? Change 3041274 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6001: Using uninitialized memory 'X'. Change 3041294 on 2016/07/07 by Chris.Wood Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14) [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length. Increased buffer size for decompression as this was sometimes too small. Modified S3 reading code to look for multiple records in each downloaded file. Change 3041472 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed. warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'. Change 3043074 on 2016/07/08 by John.Mahoney Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name. Fix for COTF GetFiles not handling absolute GameDir paths properly. #jira UE-31023 Change 3044461 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written. Change 3044470 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'. Change 3044476 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'. Change 3044551 on 2016/07/11 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did. Change 3044664 on 2016/07/11 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'. warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did. warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'. warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read. Change 3044716 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read. Change 3044717 on 2016/07/11 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did. This appears to be a false positive. Change 3044787 on 2016/07/11 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'FbxObject'. warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did. warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did. Change 3045933 on 2016/07/12 by Steve.Robb Overloading support for TSharedPtr, TSharedRef and TWeakPtr. Change 3045960 on 2016/07/12 by Robert.Manuszewski Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled. Change 3045963 on 2016/07/12 by Steve.Robb PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed. THasOperatorEquals and THasOperatorNotEquals traits moved to their own header. Change 3045967 on 2016/07/12 by Steve.Robb Initializer list support for TArray and TSet. Change 3045968 on 2016/07/12 by Robert.Manuszewski Fixing an ensure after typing 'stat dumphitches' in console. Change 3045992 on 2016/07/12 by Robert.Manuszewski Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure) Change 3047870 on 2016/07/13 by Steven.Hutton Updated CRW to entity framework with repository models. #rb none Change 3047871 on 2016/07/13 by Steven.Hutton Add repository models #rb none Change 3049468 on 2016/07/14 by Steven.Hutton Fix broken project files. #rb none #lockdown Nick.Penwarden [CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
StatusReporter.IncrementCount(StatusReportingEventNames.ExceptionEvent);
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
}
}
/// <summary>
/// Write to Slack.
/// </summary>
static public void WriteSlack(string Message)
{
if (Message != null && Message.Length > 0)
{
Slack.Write(Message);
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
}
}
/// <summary>
/// Initialise all the components, and create an event log.
/// </summary>
public CrashReporterProcessServicer()
{
InitializeComponent();
var StartupPath = Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location );
LogFolder = Path.Combine( StartupPath, "Logs" );
}
/// <summary>
/// Start the service, and stop the service if there were any errors found.
/// </summary>
/// <param name="Arguments">Command line arguments (unused).</param>
protected override void OnStart( string[] Arguments )
{
// Create a log file for any start-up messages
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
Log = new LogWriter("CrashReportProcess", LogFolder);
Config.LoadConfig();
Slack = new SlackWriter
{
WebhookUrl = Config.Default.SlackWebhookUrl,
Channel = Config.Default.SlackChannel,
Username = Config.Default.SlackUsername,
IconEmoji = Config.Default.SlackEmoji
};
StatusReporter = new StatusReporting();
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
// Add directory watchers
Watcher = new ReportWatcher();
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
for (int ProcessorIndex = 0; ProcessorIndex < Config.Default.ProcessorThreadCount; ProcessorIndex++)
{
var Processor = new ReportProcessor(Watcher, ProcessorIndex);
Processors.Add(Processor);
}
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
StatusReporter.Start();
DateTime StartupTime = DateTime.UtcNow;
WriteEvent("Successfully started at " + StartupTime);
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
}
/// <summary>
/// Stop the service.
/// </summary>
protected override void OnStop()
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602) ========================== MAJOR FEATURES + CHANGES ========================== Change 2946506 on 2016/04/18 by Steven.Hutton Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports. Change 3017807 on 2016/06/17 by Chris.Wood Improved Crash Report Process folder delete code as it could sometimes fail. [UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue Also added logging to Slack when stop request received instead of just when stop is complete. Change 3019367 on 2016/06/20 by Chris.Wood Improve Crash Report Process logging to track bad reads from S3. Also, better logging when CleanReport fails to delete folders. Change 3019376 on 2016/06/20 by Steve.Robb Clarification of assert message and comments which talk about 'null' TFunctions. Tidy-up of dead code. Change 3019409 on 2016/06/20 by Steve.Robb New Find and FindByPredicate algorithms for finding stuff in arbitrary containers. Change 3022658 on 2016/06/22 by Chris.Wood Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11) [UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue Also improved logging to Slack with better layout, fixed event ordering and counting duplicates. Change 3022840 on 2016/06/22 by Steve.Robb Skipped UHT attributes removed. Change 3022907 on 2016/06/22 by Robert.Manuszewski Fixing crash when adding a new C++ class to project #jira UE-32333 Change 3023169 on 2016/06/22 by Steve.Robb Checks for UTHINGs in skipped preprocessor blocks. Fixes for skipped UTHINGs and some other parsing accidents. #jira UE-31627 Change 3023239 on 2016/06/22 by Steve.Robb Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html Change 3026812 on 2016/06/24 by Mieszko.Zielinski Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4 Change 3028235 on 2016/06/27 by Robert.Manuszewski PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist) Change 3028282 on 2016/06/27 by Steve.Robb Fix for missing UFUNCTION check in skipped preprocessor blocks. #jira UE-31627 Change 3028284 on 2016/06/27 by Steve.Robb Debuggability improvements and coding standards changes. Change 3028343 on 2016/06/27 by Steve.Robb Fix for UHT error in WEX. #jira UE-32464 Change 3028393 on 2016/06/27 by Steve.Robb Fix for hot reload of enums finding the old enum. Fix to stop SPropertyEditorNumeric caching the enum flags. #jira UE-31658 Change 3030362 on 2016/06/28 by Robert.Manuszewski Fixing hang when cooking. Change 3030462 on 2016/06/28 by Steve.Robb Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild. #jira UE-32001 Change 3034341 on 2016/06/30 by Robert.Manuszewski Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report. Added 'debug twothreadsgpf' command to test the functionality. Change 3034342 on 2016/06/30 by John.Mahoney Fix for crash when loading an empty cached asset registry. #jira UE-32232 Change 3035599 on 2016/07/01 by Chris.Wood Added support for CrashType string to Crash Report Process. CRP v1.1.12 [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible. Added in missing crash context parameters that have been added to clients but not known by the server. Change 3035787 on 2016/07/01 by John.Mahoney Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h. #jira UE-30189 Change 3036933 on 2016/07/04 by Steve.Robb Proper forwarding constructor for FAsyncTask. Change 3036938 on 2016/07/04 by Steve.Robb Fix for CDO hot reload corrupting memory when replacing references inside structs. #jira UE-29335 Change 3036960 on 2016/07/04 by Steve.Robb Fix for FAnsiAllocator::ResizeAllocation when resizing to zero. Change 3037423 on 2016/07/05 by Steve.Robb FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool. Change 3037464 on 2016/07/05 by Steve.Robb HotReload.cpp cleanup: Deep nesting flattened. Linear array searches replaced with maps. FHotReloadModule::GetGameModules made into a non-member function and split into two. Comment and coding standard fixes. Change 3037741 on 2016/07/05 by John.Mahoney Fix for COTF not checking the correct timestamps on startup. #jira UE-31023 Change 3037846 on 2016/07/05 by Steve.Robb Fix for compile button disappearing on a bad compile. #jira UE-31575 Change 3037994 on 2016/07/05 by Steve.Robb Static analysis fixes: warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked. Change 3039186 on 2016/07/06 by Robert.Manuszewski Enabling crash callstack logging by default. Change 3039220 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot warning C6001: Using uninitialized memory 'UserNameLength' warning C6001: Using uninitialized memory 'DomainNameLength' Change 3039230 on 2016/07/06 by Steve.Robb Fix for VC internal compiler errors. Change 3039237 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read. Change 3039287 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter. warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'. warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'. warning C6031: Return value ignored: 'CoCreateInstance'. Change 3039359 on 2016/07/06 by Graeme.Thornton Compile error fix for FAsyncTask, courtesy of SteveR Change 3039534 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects. Change 3039545 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value. Change 3039578 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack. Change 3039623 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X' warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked. warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read. warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written. warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did. Change 3039630 on 2016/07/06 by John.Mahoney Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here. #jira UE-29123 Change 3039664 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written. warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written. Change 3039673 on 2016/07/06 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'. Change 3039690 on 2016/07/06 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X'. warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope. warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap. warning C6263: Using _alloca in a loop: this can quickly overflow stack. Change 3040868 on 2016/07/07 by Graeme.Thornton Config based class stripping for server builds Change 3040872 on 2016/07/07 by Graeme.Thornton Remove "return false" NeedsLoadForServer functions from engine code Change 3040997 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Landscape'. warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'. warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'. Change 3041004 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent. Change 3041014 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical. Change 3041111 on 2016/07/07 by Steve.Robb Removal of an obsolete error message about INI file case sensitivity. Change 3041150 on 2016/07/07 by Steve.Robb Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead? Change 3041274 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6001: Using uninitialized memory 'X'. Change 3041294 on 2016/07/07 by Chris.Wood Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14) [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length. Increased buffer size for decompression as this was sometimes too small. Modified S3 reading code to look for multiple records in each downloaded file. Change 3041472 on 2016/07/07 by Steve.Robb Static analysis fixes: warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed. warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'. Change 3043074 on 2016/07/08 by John.Mahoney Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name. Fix for COTF GetFiles not handling absolute GameDir paths properly. #jira UE-31023 Change 3044461 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written. Change 3044470 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'. Change 3044476 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'. Change 3044551 on 2016/07/11 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did. Change 3044664 on 2016/07/11 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'. warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did. warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'. warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read. Change 3044716 on 2016/07/11 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read. Change 3044717 on 2016/07/11 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did. This appears to be a false positive. Change 3044787 on 2016/07/11 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'FbxObject'. warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did. warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did. Change 3045933 on 2016/07/12 by Steve.Robb Overloading support for TSharedPtr, TSharedRef and TWeakPtr. Change 3045960 on 2016/07/12 by Robert.Manuszewski Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled. Change 3045963 on 2016/07/12 by Steve.Robb PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed. THasOperatorEquals and THasOperatorNotEquals traits moved to their own header. Change 3045967 on 2016/07/12 by Steve.Robb Initializer list support for TArray and TSet. Change 3045968 on 2016/07/12 by Robert.Manuszewski Fixing an ensure after typing 'stat dumphitches' in console. Change 3045992 on 2016/07/12 by Robert.Manuszewski Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure) Change 3047870 on 2016/07/13 by Steven.Hutton Updated CRW to entity framework with repository models. #rb none Change 3047871 on 2016/07/13 by Steven.Hutton Add repository models #rb none Change 3049468 on 2016/07/14 by Steven.Hutton Fix broken project files. #rb none #lockdown Nick.Penwarden [CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
StatusReporter.OnPreStopping();
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
// Clean up the directory watcher and crash processor threads
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
foreach (var Processor in Processors)
{
Processor.Dispose();
}
Processors.Clear();
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
Watcher.Dispose();
Watcher = null;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
StatusReporter.Dispose();
StatusReporter = null;
Slack.Dispose();
Slack = null;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2783106 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Introduced GC UObject clusters. GC clusters provide means to create disregard for GC subsets at load time (e.g. Materials with material expressions and their textures). - Saves about 25ms in reachability analysis (58ms -> 33ms) - UObject classes/instances can now be marked as cluster root objects with CanBeClusterRoot() function override. - Cluster creation is automatic. Clusters don't require any manual handling for GC to collect them when nothing is referencing them. - Moved token stream processing to a new class FFastReferenceFinder to make it more generic and re-usable by other code - Removed REFERENCE_INFO macro from GC code and replaced it with a local variable (saves about ~1.9ms: 33.2ms -> 31.3ms) Change 2773094 on 2015/11/19 by Steve.Robb@Dev-Core Multicast script delegate check for existing bindings replaced with ensure. Multicast native delegate no longer checks for existing bindings. Removal of old delegate code. Some FORCEINLINEing to improve debugging experience of stepping into delegate code. Change 2782180 on 2015/11/27 by Graeme.Thornton@GThornton_DesktopMaster Make scoped seconds timer class available outside of stats build. Normal usage macros still remain guarded Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE which only times during the outmost instance of a recursive function Added SCOPE_SECONDS_COUNTER_RECURSION_SAFE_BASE and SCOPE_SECONDS_COUNTER_BASE which are defined in all build types, for easy temporary timing in Test/Shipping builds. Added a boolean parameter to the timer class which can be used to disable it without having to mess around with scoping the calling code Change 2782635 on 2015/11/30 by Graeme.Thornton@GThornton_DesktopMaster Added GetTimeStampPair() to the filemanager and platformfile interfaces. Requests timestamps for a pair of files where we assume that both files would always exist at the same wrapper level. Allows us to skip file system queries for localization package lookups where the native file is in a pak but the localized file doesn't exist. Change 2775153 on 2015/11/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReportServer moved out of the not for licencees, a few fixes, removed RegisterPII Change 2775560 on 2015/11/20 by Steve.Robb@Dev-Core FDelegateBase::GetDelegateInstance deprecated and replaced with FDelegateBase::GetDelegateInstanceProtected. Change 2781138 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Converted is using a new stats reader, a few more optimizations, should be 10x times faster Change 2772990 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Fixing potential dead lock when suspending and resuming async loading multiple times Change 2773023 on 2015/11/19 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Support for references added through AddReferencedObjects in FArchiveReplaceObjectRef Change 2781055 on 2015/11/25 by Steve.Robb@Dev-Core Changes to IDelegateInstance reverted to allow licensees an easier time when upgrading their use of the now-deprecated GetDelegateInstance() code path. New TryGetBoundFunctionName() to aid the debugging of delegate bindings in non-shipping configs. Change 2773114 on 2015/11/19 by Steve.Robb@Dev-Core FMath::IsPowerOfTwo is now templated to take any type. Change 2773643 on 2015/11/19 by Steve.Robb@Dev-Core GetDelegateInstance() calls replaced - delegate instances never compare equal unless you are comparing two unbound delegates (both null) or comparing a delegate with itself. Change 2777686 on 2015/11/23 by Steve.Robb@Dev-Core GitHub #1793 - File write flags argument Change 2780590 on 2015/11/25 by Steve.Robb@Dev-Core Fix for FArchiveProxy::operator<< overloads. Change 2780845 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec #jira UE-23358 - MDD relies on hard-coded P4 depot paths (fixed source context for streams) Change 2780962 on 2015/11/25 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Stats - Added FStatsWriteStream for basic saving stat messages into a stream, initial support for reading a regular stats file, minor performance optimization, coding standard fixes #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781887 on 2015/11/26 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler/ProfilerClient - Removed unneeded synchronization points, replaces with task graph SendTo jobs, removed PROFILER_THREADED_LOAD, replaced with new stats loading mechanism, should be around 2x times faster (4x since the optimization pass) #jira UECORE-170 - Improve profiler loading performance (wip) Change 2781893 on 2015/11/26 by Steve.Robb@Dev-Core TCachedOSPageAllocator abstracted from MallocBinned2. Misc tidy-ups. Change 2782198 on 2015/11/27 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec Profiler - Better indication of the loading progress, should no longer freeze without a progress bar #jira UECORE-170 - Improve profiler loading performance (wip) Change 2782446 on 2015/11/29 by Steve.Robb@Dev-Core Warn when calling delegates' Create* functions when they're not assigned to anything. #codereview robert.manuszewski Change 2782538 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 #UE4 Removed DiskCachedAssetDataBuffer as it was not strictly necessary and was triggering a crash when loading the cached registry from disk. This data is now stored directly in DiskCachedAssetDataMap. It was already true that this map does not change outside of SerializeCache but now it is critical since NewCachedAssetDataMap keeps pointers directly to its values. Asset registry fixes by Bob Tellez. Possible fix for UE-23783. Change 2782564 on 2015/11/30 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 FReferenceCollector::AddReferenceObjects performance improvements for TArrays. ARO will no longer call HandleObjectReference multiple times but instead will call HandleObjectReferences just once (currently only implemented for FGCCollector). Reduces the number of virtual function calls while GC'ing. Change 2782716 on 2015/11/30 by Steve.Robb@Dev-Core UObject serial number array initialized for debug visualization. Change 2782933 on 2015/11/30 by Steve.Robb@Dev-Core Critical sections are no longer copyable. Change 2783061 on 2015/11/30 by Steve.Robb@Dev-Core
2015-12-03 14:21:29 -05:00
// Flush the log to disk
Log.Dispose();
Log = null;
}
/// <summary>
/// Run the service in debug mode. This spews all logging to the console rather than suppressing it.
/// </summary>
public void DebugRun()
{
OnStart( null );
Console.WriteLine( "Press enter to exit" );
Console.Read();
OnStop();
}
}
}