From 3be98f3617ff7c6211b67de5b46cafa079f7daa4 Mon Sep 17 00:00:00 2001 From: jyelon Date: Mon, 4 May 2026 16:51:39 -0400 Subject: [PATCH] Yet another fix for UEDataFormatter.py --- tools/UEDataFormatter.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/UEDataFormatter.py b/tools/UEDataFormatter.py index eb42edc6..88d32443 100644 --- a/tools/UEDataFormatter.py +++ b/tools/UEDataFormatter.py @@ -16,12 +16,10 @@ _FUObjectItemType = None _GNameBlocksDebug = None _GObjectArrayForDebugVisualizers = None -def _init_globals(frame, bp_loc, dict): +def _init_globals(target): global _FNameEntryType, _FNameEntryStride, _FUObjectItemType global _GNameBlocksDebug, _GObjectArrayForDebugVisualizers - target = frame.GetThread().GetProcess().GetTarget() - if _FNameEntryType is None: t = target.FindFirstType('FNameEntry') if t.IsValid(): @@ -43,6 +41,13 @@ def _init_globals(frame, bp_loc, dict): if v.IsValid(): _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): 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__) - frame = debugger.GetSelectedTarget().GetProcess().GetSelectedThread().GetSelectedFrame() - if frame.IsValid(): - _init_globals(frame, None, {}) + target = debugger.GetSelectedTarget() + if target.IsValid(): + _init_globals(target) cat = debugger.CreateCategory(__name__) _register_provider(cat, '^FString$', summary_fn='UEFStringSummaryProvider')