Live Coding: Fix crashes when patching adaptive non-unity files in game modules containing static global variables.

Live++ reads object files at startup for game modules, and assigns unique ids to each compiland (used to disambiguate static variables). When compiling the patch, these compilands are modified to reference a unique id for the unity blob, causing the variables to be reconstructed.

Solution is to generate a JSON file to each output directory containing object files containing the mapping, and to use that to assign compiland ids at startup.

#rb none
#jira UE-74036

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6455253 in //UE4/Release-4.22/... via CL 6455273
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 6512984 by ben marsh in Dev-VR branch]
This commit is contained in:
ben marsh
2019-05-15 16:17:53 -04:00
parent a14afa70fc
commit e357715701
14 changed files with 296 additions and 228 deletions

View File

@@ -140,4 +140,8 @@ private:
// all patches loaded so far along with recorded data how to load them into other processes
types::vector<ModulePatch*> m_compiledModulePatches;
// BEGIN EPIC MOD - Allow mapping from object files to their unity object file
types::StringMap<uint32_t> m_objFileToCompilandId;
// END EPIC MOD
};