2020-12-15 09:27:44 -04:00
|
|
|
// Copyright 2011-2020 Molecular Matters GmbH, all rights reserved.
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
|
2020-12-15 09:27:44 -04:00
|
|
|
// BEGIN EPIC MOD
|
|
|
|
|
//#include PCH_INCLUDE
|
|
|
|
|
// END EPIC MOD
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
#include "LC_SymbolPatterns.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace symbolPatterns
|
|
|
|
|
{
|
|
|
|
|
// highly compiler-specific
|
|
|
|
|
// https://en.wikiversity.org/wiki/Visual_C%2B%2B_name_mangling
|
|
|
|
|
extern const char* const PCH_SYMBOL_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// in newer versions of Visual Studio, translation units using a precompiled header file will
|
|
|
|
|
// emit a corresponding directive to make the linker force-include the PCH's symbol, e.g.
|
|
|
|
|
// -INCLUDE:___@@_PchSym_@00@UwvevolknvmgUkilqvxghUorevxlwvUxlwvUgvnkUdrmDCUwvyftUvcvwbmznrxifmgrnvUkxsOlyq@FC6294CA356B5C81
|
|
|
|
|
"@_PchSym_@"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const VTABLE_PATTERNS[3] =
|
|
|
|
|
{
|
|
|
|
|
// in undecorated form, "`vftable'" denotes a virtual function table.
|
|
|
|
|
// in decorated form, this is denoted by "??_7".
|
|
|
|
|
"??_7",
|
|
|
|
|
|
|
|
|
|
// additionally, there is a thing known as a local virtual function table or "local vftable".
|
|
|
|
|
// see https://groups.google.com/forum/#!msg/microsoft.public.vc.language/atSh_2VSc2w/EgJ3r_7OzVUJ
|
|
|
|
|
// this is denoted by "??_S" in decorated form.
|
|
|
|
|
"??_S",
|
|
|
|
|
|
|
|
|
|
// in undecorated form, "`vbtable'" denotes a virtual base class table, used with multiple virtual inheritance.
|
|
|
|
|
// in decorated form, this is denoted by "??_8".
|
|
|
|
|
"??_8"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const RTTI_OBJECT_LOCATOR_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// in undecorated form, "const Foo::`RTTI Complete Object Locator'" denotes an RTTI object locator.
|
|
|
|
|
// in decorated form, this is denoted by "??_R4".
|
|
|
|
|
"??_R4"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const DYNAMIC_INITIALIZER_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// a dynamic initializer is a piece of code for constructing e.g. static/global instances.
|
|
|
|
|
// in its relocations, it mostly refers to global/static data (the thing being constructed) and constructor(s).
|
|
|
|
|
|
|
|
|
|
// in undecorated form, "`dynamic initializer'" denotes a dynamic initializer used for constructing global instances.
|
|
|
|
|
// in decorated form, this is denoted by "??__E".
|
|
|
|
|
"??__E"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const DYNAMIC_ATEXIT_DESTRUCTORS[1] =
|
|
|
|
|
{
|
|
|
|
|
// a dynamic atexit destructor is a piece of code for destructing e.g. static/global instances.
|
|
|
|
|
// in its relocations, it mostly refers to global/static data (the thing being destructed) and destructor(s).
|
|
|
|
|
|
|
|
|
|
// in undecorated form, "`dynamic atexit destructor'" denotes a dynamic atexit destructor used for destructing global instances.
|
|
|
|
|
// in decorated form, this is denoted by "??__F".
|
|
|
|
|
"??__F"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const POINTER_TO_DYNAMIC_INITIALIZER_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// pointers to dynamic initializers always have $initializer$ in their name and reside in the .CRT$XCU section.
|
|
|
|
|
// in its relocations, it only refers to dynamic initializers.
|
|
|
|
|
"$initializer$"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const STRING_LITERAL_PATTERNS[2] =
|
|
|
|
|
{
|
|
|
|
|
// in decorated form, a string literal is denoted by "??_C@_".
|
|
|
|
|
// in COFF files, string literals are sometimes named "$SG", depending on compiler settings.
|
|
|
|
|
"??_C@_",
|
|
|
|
|
"$SG"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const LINE_NUMBER_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// line numbers are named "$LN????", e.g. "$LN11"
|
|
|
|
|
"$LN"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const FLOATING_POINT_CONSTANT_PATTERNS[4] =
|
|
|
|
|
{
|
|
|
|
|
// NOTE: both 32-bit and 64-bit constants have the same mangled name (two leading underscores)
|
|
|
|
|
|
|
|
|
|
// compiler-specific, floating-point values
|
|
|
|
|
"__real@",
|
|
|
|
|
|
|
|
|
|
// compiler-specific, __m128 (SSE <-> SSE 4.2)
|
|
|
|
|
"__xmm@",
|
|
|
|
|
|
|
|
|
|
// compiler-specific, __m256 (AVX)
|
|
|
|
|
"__ymm@",
|
|
|
|
|
|
|
|
|
|
// compiler-specific, __m512 (AVX512)
|
|
|
|
|
"__zmm@"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#if LC_64_BIT
|
2020-12-15 09:27:44 -04:00
|
|
|
extern const char* const EXCEPTION_RELATED_PATTERNS[17] =
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
#else
|
2020-12-15 09:27:44 -04:00
|
|
|
extern const char* const EXCEPTION_RELATED_PATTERNS[11] =
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
#endif
|
|
|
|
|
{
|
|
|
|
|
// used for C++ exception handling
|
|
|
|
|
// http://www.openrce.org/articles/full_view/21
|
|
|
|
|
|
|
|
|
|
// function symbols
|
|
|
|
|
#if LC_64_BIT
|
|
|
|
|
"?dtor$",
|
|
|
|
|
"?catch$",
|
|
|
|
|
"?fin$",
|
|
|
|
|
"?filt$",
|
2020-12-15 09:27:44 -04:00
|
|
|
"__catch$", // CL
|
|
|
|
|
"?catch$", // Clang
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
"_CxxThrowException",
|
|
|
|
|
"__CxxFrameHandler",
|
|
|
|
|
"__GSHandlerCheck",
|
|
|
|
|
#else
|
|
|
|
|
"__ehhandler$",
|
|
|
|
|
"__unwindfunclet$",
|
2020-12-15 09:27:44 -04:00
|
|
|
"__catch$", // CL
|
|
|
|
|
"?catch$", // Clang
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
"__except_handler3",
|
|
|
|
|
"__except_handler4",
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// data symbols
|
|
|
|
|
#if LC_64_BIT
|
|
|
|
|
"$unwind$",
|
|
|
|
|
"$chain$",
|
|
|
|
|
"$pdata$",
|
|
|
|
|
"$cppxdata$",
|
|
|
|
|
"$stateUnwindMap$",
|
|
|
|
|
"$tryMap$",
|
|
|
|
|
"$handlerMap$",
|
|
|
|
|
"$ip2state$"
|
|
|
|
|
#else
|
|
|
|
|
"__ehfuncinfo$",
|
|
|
|
|
"__catchsym$",
|
|
|
|
|
"__unwindtable$",
|
|
|
|
|
"__tryblocktable$",
|
|
|
|
|
"__sehtable$"
|
|
|
|
|
#endif
|
|
|
|
|
};
|
|
|
|
|
|
2019-05-24 11:51:54 -04:00
|
|
|
extern const char* const EXCEPTION_UNWIND_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
#if LC_64_BIT
|
|
|
|
|
"?dtor$",
|
|
|
|
|
#else
|
|
|
|
|
"__unwindfunclet$",
|
|
|
|
|
#endif
|
|
|
|
|
};
|
|
|
|
|
|
2020-12-15 09:27:44 -04:00
|
|
|
extern const char* const EXCEPTION_CLAUSE_PATTERNS[2] =
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
{
|
2020-12-15 09:27:44 -04:00
|
|
|
"__catch$", // CL
|
|
|
|
|
"?catch$", // Clang
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const RTC_PATTERNS[8] =
|
|
|
|
|
{
|
|
|
|
|
"@_RTC_Check", // @_RTC_Check_4_to_1@4 and @_RTC_CheckStackVars@8
|
|
|
|
|
LC_IDENTIFIER("_RTC_CheckEsp"),
|
|
|
|
|
LC_IDENTIFIER("_RTC_InitBase"),
|
|
|
|
|
LC_IDENTIFIER("_RTC_Shutdown"),
|
|
|
|
|
".rtc$", // _RTC_InitBase.rtc$ and _RTC_Shutdown.rtc$ and _RTC_CheckStackVars.rtc$
|
|
|
|
|
"$rtcName$", // 64-bit runtime-check data, referenced by frame data, read-only
|
|
|
|
|
"$rtcVarDesc", // 64-bit runtime-check data, referenced by frame data, read-only
|
|
|
|
|
"$rtcFrameData" // 64-bit runtime-check data, read-only
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const SDL_CHECK_PATTERNS[2] =
|
|
|
|
|
{
|
|
|
|
|
LC_IDENTIFIER("__security_cookie"),
|
|
|
|
|
"__security_check_cookie"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const CFG_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// NOTE: both 32-bit and 64-bit constants have the same mangled name (two leading underscores)
|
|
|
|
|
"__guard_fids" // control flow guard function identifiers
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const IMAGE_BASE_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// NOTE: both 32-bit and 64-bit constants have the same mangled name (two leading underscores)
|
|
|
|
|
"__ImageBase"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const TLS_ARRAY_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
// 64-bit: a hard-coded placeholder for gs:0x58, often not even emitted as symbol
|
|
|
|
|
// 32-bit: a hard-coded placeholder for fs:0x2C
|
|
|
|
|
LC_IDENTIFIER("_tls_array")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const TLS_INDEX_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
LC_IDENTIFIER("_tls_index")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const TLS_INIT_PATTERNS[3] =
|
|
|
|
|
{
|
|
|
|
|
LC_IDENTIFIER("_Init_thread_epoch"),
|
|
|
|
|
LC_IDENTIFIER("_Init_thread_header"),
|
|
|
|
|
LC_IDENTIFIER("_Init_thread_footer")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const TLS_STATICS_PATTERNS[1] =
|
|
|
|
|
{
|
|
|
|
|
"?$TSS"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern const char* const ANONYMOUS_NAMESPACE_PATTERN =
|
|
|
|
|
{
|
|
|
|
|
"@?A0x"
|
|
|
|
|
};
|
2021-03-18 08:13:59 -04:00
|
|
|
|
|
|
|
|
// BEGIN EPIC MOD
|
2021-09-20 08:13:50 -04:00
|
|
|
extern const char* const UE_STATICS_BLOCK_PATTERNS[7] =
|
2021-03-18 08:13:59 -04:00
|
|
|
{
|
|
|
|
|
"*Z_Construct_UClass_*_Statics*",
|
|
|
|
|
"*Z_Construct_UEnum_*_Statics*",
|
|
|
|
|
"*Z_Construct_UFunction_*_Statics*",
|
|
|
|
|
"*Z_Construct_UDelegateFunction_*_Statics*",
|
|
|
|
|
"*Z_Construct_UScriptStruct_*_Statics*",
|
2021-06-09 11:42:43 -04:00
|
|
|
"*Z_Construct_UPackage_*_Statics*",
|
2021-09-20 08:13:50 -04:00
|
|
|
"*Z_CompiledInDeferFile_*_Statics*",
|
2021-03-18 08:13:59 -04:00
|
|
|
};
|
|
|
|
|
|
2021-09-20 08:13:50 -04:00
|
|
|
extern const char* const UE_REGISTER_PATTERNS[6] =
|
2021-03-18 08:13:59 -04:00
|
|
|
{
|
|
|
|
|
"?AutoInitialize",
|
|
|
|
|
"?Z_CompiledInDeferEnum_UEnum_",
|
|
|
|
|
"?Z_CompiledInDeferStruct_UScriptStruct_",
|
|
|
|
|
"?Z_CompiledInDeferCppStructOps_UScriptStruct_",
|
2021-06-09 11:42:43 -04:00
|
|
|
"?Z_CompiledInDeferPackage_UPackage_",
|
2021-09-20 08:13:50 -04:00
|
|
|
"?Z_CompiledInDeferFile_",
|
2021-03-18 08:13:59 -04:00
|
|
|
};
|
|
|
|
|
// END EPIC MOD
|
Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.
Changes vs standalone Live++ version:
* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.
Known issues:
* Does not currently support class layout changes / object reinstancing
#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
|
|
|
}
|