diff --git a/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py b/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py index f56f5ea9cac4..ff1c4030b38f 100644 --- a/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py +++ b/Engine/Extras/LLDBDataFormatters/UEDataFormatters_2ByteChars.py @@ -32,7 +32,7 @@ def UETCharSummaryProvider(valobj,dict): if DataVal == 0: Val = 'NULL' else: - Expr = '(char16_t*)(%s)' % Data + Expr = '(char16_t*)(%s)' % DataVal ValRef = valobj.CreateValueFromExpression('string', Expr) Val = ValRef.GetSummary() elif Type.IsReferenceType(): @@ -47,6 +47,11 @@ def UETCharSummaryProvider(valobj,dict): Expr = '(char16_t*)(%s)' % valobj.GetAddress() ValRef = valobj.CreateValueFromExpression('string', Expr) Val = ValRef.GetSummary() + else: + DataVal = valobj.GetValueAsUnsigned(0) + Expr = '(char16_t)(%s)' % DataVal + ValRef = valobj.CreateValueFromExpression('string', Expr) + Val = ValRef.GetSummary() return Val def UESignedCharSummaryProvider(valobj,dict): diff --git a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp index ca5f4b5fb5ff..a436a624d5b7 100644 --- a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp +++ b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp @@ -299,6 +299,9 @@ bool FLinuxPlatformApplicationMisc::InitSDL() SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_SHOW_CURSOR, "1"); // When relative mouse mode is acive, don't hide cursor. SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_WARP, "0"); // Don't warp the cursor to the center in relative mouse mode. + // Unreal does its own dynamic capturing, we don't need SDL to do it. + SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0"); + // If we're rendering offscreen, use the "dummy" SDL video driver if (FParse::Param(FCommandLine::Get(), TEXT("RenderOffScreen")) && !getenv("SDL_VIDEODRIVER")) { diff --git a/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp b/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp index 1677269adb69..dae6bcde6c25 100644 --- a/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp +++ b/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp @@ -10,6 +10,13 @@ #include "Stats/Stats.h" #include "ProfilingDebugging/CsvProfiler.h" +namespace UBreakPoint { + volatile int OnLogError_V; + FORCENOINLINE static void OnLogError() { + OnLogError_V = 0; + } +} + void StaticFailDebugV(const TCHAR* Error, const ANSICHAR* Expression, const ANSICHAR* File, int32 Line, bool bIsEnsure, void* ProgramCounter, const TCHAR* DescriptionFormat, va_list DescriptionArgs); CSV_DEFINE_CATEGORY(FMsgLogf, true); @@ -35,6 +42,9 @@ void FMsg::LogfImpl(const ANSICHAR* File, int32 Line, const FLogCategoryName& Ca } GROWABLE_LOGF(LogOverride ? LogOverride->Log(Category, Verbosity, Buffer) : GLog->RedirectLog(Category, Verbosity, Buffer)) + if (Verbosity == ELogVerbosity::Error) { + UBreakPoint::OnLogError(); + } } else { @@ -79,6 +89,9 @@ void FMsg::LogV(const ANSICHAR* File, int32 Line, const FLogCategoryName& Catego { (OutputDevice ? OutputDevice : GLog)->Serialize(Message, Verbosity, Category); }); + if (Verbosity == ELogVerbosity::Error) { + UBreakPoint::OnLogError(); + } } else {