2024-11-25 15:20:33 -05:00
|
|
|
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):
|
2024-11-05 20:26:39 -05:00
|
|
|
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
|
|
|
|
|
{
|