Program debug database
Live++ needs a full PDB file in order to extract some of the needed information about the executable.
Hotpatch compiler support
x86/32-bit executables need to be compiled with support for hot patching (*).
Visual Studio compiler
Code needs to be compiled using a Visual Studio compiler (**).
Hot-reload requires the Live++ DLL to be loaded by your module.
Hotpatch linker support
All executables need to be linked with support for hot patching (*).
Visual Studio or LLVM linker
Code needs to be linked using either the Visual Studio linker or LLVM's LLD (requires at least revision 357308).
(*) Subject to change, requirement might be removed in future versions
(**) Support for LLVM Clang in progress
Integrating Live++ is very simple and usually requires less than 10 minutes:
- Adapt compiler and linker options to meet the technical requirements.
- Load the Live++ DLL and register a process group with a single line of code using the provided single-header C++ API.
- Enable Live++ for your module(s) using another single line of code.
Read the online documentation for a quickstart guide
Starting with Unreal Engine 4.22, Live++ is deeply integrated into the engine itself and is available to every Unreal Engine developer out of the box.
Philipp Gehring has kindly provided a plug-in available for free on GitHub.
Additional C/C++ API
Live++ comes with an additional API that allows you to do even more advanced hot-reloading, which would otherwise be impossible.
Live++ offers pre- and post-patch hooks that allow you to even make changes to the memory layout of classes. Code like the example below allows you to add and remove members to and from classes.
Even though patching running executables using Live++ is always safe, the API enables you to emit synchronization points into your executable, ensuring that code patches are always applied at e.g. the start of a single frame.
The Live++ API offers additional features such as temporarily disabling optimizations for functions or files, using an external build system, powerful error recovery, restarting applications - check the online documentation for more information!