Yet another fix for UEDataFormatter.py
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user