Yet another fix for UEDataFormatter.py

This commit is contained in:
2026-05-04 16:51:39 -04:00
parent 3cf984ff65
commit 3be98f3617

View File

@@ -16,12 +16,10 @@ _FUObjectItemType = None
_GNameBlocksDebug = None _GNameBlocksDebug = None
_GObjectArrayForDebugVisualizers = None _GObjectArrayForDebugVisualizers = None
def _init_globals(frame, bp_loc, dict): def _init_globals(target):
global _FNameEntryType, _FNameEntryStride, _FUObjectItemType global _FNameEntryType, _FNameEntryStride, _FUObjectItemType
global _GNameBlocksDebug, _GObjectArrayForDebugVisualizers global _GNameBlocksDebug, _GObjectArrayForDebugVisualizers
target = frame.GetThread().GetProcess().GetTarget()
if _FNameEntryType is None: if _FNameEntryType is None:
t = target.FindFirstType('FNameEntry') t = target.FindFirstType('FNameEntry')
if t.IsValid(): if t.IsValid():
@@ -43,6 +41,13 @@ def _init_globals(frame, bp_loc, dict):
if v.IsValid(): if v.IsValid():
_GObjectArrayForDebugVisualizers = v _GObjectArrayForDebugVisualizers = v
class _GlobalsInitStopHook:
def __init__(self, target, extra_args, internal_dict):
_init_globals(target)
def handle_stop(self, exe_ctx, stream):
_init_globals(exe_ctx.GetTarget())
return True
############################################################ ############################################################
# #
@@ -683,11 +688,11 @@ def _register_provider(cat, pattern, summary_fn=None, synth_cls=None):
def __lldb_init_module(debugger, dict): def __lldb_init_module(debugger, dict):
print("Running lldb_init_module") print("Running lldb_init_module")
debugger.HandleCommand('target stop-hook add --python-function ' + __name__ + '._init_globals') debugger.HandleCommand('target stop-hook add -P ' + __name__ + '._GlobalsInitStopHook')
debugger.HandleCommand('type category delete ' + __name__) debugger.HandleCommand('type category delete ' + __name__)
frame = debugger.GetSelectedTarget().GetProcess().GetSelectedThread().GetSelectedFrame() target = debugger.GetSelectedTarget()
if frame.IsValid(): if target.IsValid():
_init_globals(frame, None, {}) _init_globals(target)
cat = debugger.CreateCategory(__name__) cat = debugger.CreateCategory(__name__)
_register_provider(cat, '^FString$', summary_fn='UEFStringSummaryProvider') _register_provider(cat, '^FString$', summary_fn='UEFStringSummaryProvider')