This new concept aims to abstract the complexities of dealing global debugging state that is tricky with the symbol resolution scoping rules in Visual Studio's natvis specification, and fragile with live-coding.
The specification causes natvis authors to often need to add explicit scoping to global variables (using {,,UnrealEditor-ModuleName.dll} or UnrealEditor-ModuleName.dll! scoping), which is fragile for different build types (Editor vs Server vs Client) and configurations (Debug, Shipping etc).
This change adds a GDebuggingState symbol to every dll with which any engine module or third-party library can register global pointers using a unique GUID. The GUID string can then be used to locate that pointer from any other module through a natvis intrinsic function using strstr, without having to inject a specific symbol name into every DLL.
This allows authors to write generic natvis expressions that will work robustly when being viewed from the context of any other module, or in code that has been patched by LiveCoding.
#rb Nicholas.Frechette, Tim.Smith
[CL 35592824 by andrew rodham in ue5-main branch]
Not proud over the LC_* files but don't dare touching the actual log macros since that is hard to get right and I don't know how to test this code
#preflight 6351d6de777a77c440123e2c
#rb none
[CL 22705170 by henrik karlsson in ue5-main branch]
Hack to workaround clang-cl bug in LC_StringUtil.cpp is finally no longer necessary with Clang 13
Outstanding Issues:
Unresloved externals in ClangEditor (FRHI*)
error: ordered comparison of function pointers ('Electra::fastdelegate::DelegateMemento::GenericFuncPtr' (aka
'void (*)()') and 'Electra::fastdelegate::DelegateMemento::GenericFuncPtr') [-Werror,-Wordered-compare-function-
pointers]
#rnx
#rb none
#preflight 61d33dff932a02483cb454bc
#ROBOMERGE-AUTHOR: joe.kirchoff
#ROBOMERGE-SOURCE: CL 18503088 in //UE5/Release-5.0/... via CL 18503149
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18503159 by joe kirchoff in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
#rb none
#rnx
#ROBOMERGE-SOURCE: CL 16967550 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16967553 by tim smith in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 16763061 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)
[CL 16763918 by joe kirchoff in ue5-release-engine-test branch]
Added message that packaging can fail if assets reference new changes.
#rb
#rnx
#jira UE-115558
#preflight 60c39c8e8d00b80001b1e85f
#ROBOMERGE-SOURCE: CL 16645001 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16645007 by tim smith in ue5-release-engine-test branch]
1) Changed the pre/post compile notifications from module notifications to process commands.
2) Added server command to notify that we want re-instance patching (two phase)
3) Added support for two phase patching to enable re-instancing without all the limitations.
4) Added a null CDO check for old blueprint classes (approved by Phillip)
#rb ben.marsh
#rnx
#preflight 6086e3481046fb000183c2d4
[CL 16115620 by Tim Smith in ue5-main branch]