Files
clang-p2996/lldb/test/API/functionalities/thread_plan/wrap_step_over.py
Med Ismail Bennani 9a9ec228cd [lldb] Make use of Scripted{Python,}Interface for ScriptedThreadPlan (#70392) (#96868)
This patch makes ScriptedThreadPlan conforming to the ScriptedInterface
& ScriptedPythonInterface facilities by introducing 2
ScriptedThreadPlanInterface & ScriptedThreadPlanPythonInterface classes.

This allows us to get rid of every ScriptedThreadPlan-specific SWIG
method and re-use the same affordances as other scripting offordances,
like Scripted{Process,Thread,Platform} & OperatingSystem.

To do so, this adds new transformer methods for `ThreadPlan`, `Stream` &
`Event`, to allow the bijection between C++ objects and their python
counterparts.

This just re-lands #70392 after fixing test failures.

Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2024-06-27 01:45:30 -07:00

28 lines
823 B
Python

import lldb
class WrapStepOver:
def __init__(self, thread_plan, args_data):
self.plan = thread_plan
thread = thread_plan.GetThread()
target = thread.GetProcess().GetTarget()
frame_0 = thread.frames[0]
line_entry = frame_0.line_entry
start_addr = line_entry.addr
end_addr = line_entry.end_addr
range_size = end_addr.GetLoadAddress(target) - start_addr.GetLoadAddress(target)
error = lldb.SBError()
self.sub_plan = thread_plan.QueueThreadPlanForStepOverRange(
start_addr, range_size
)
def should_step(self):
return False
def should_stop(self, event):
if self.sub_plan.IsPlanComplete():
self.plan.SetPlanComplete(True)
return True
else:
return False