[Lldb-commits] [PATCH] D148548: [lldb] Improve breakpoint management for interactive scripted process
Med Ismail Bennani via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Apr 17 14:25:35 PDT 2023
mib marked 3 inline comments as done.
mib added inline comments.
================
Comment at: lldb/bindings/interface/SBTargetExtensions.i:144-171
+ class watchpoints_access(object):
+ '''A helper object that will lazily hand out watchpoints for a target when supplied an index.'''
+ def __init__(self, sbtarget):
+ self.sbtarget = sbtarget
+
+ def __len__(self):
+ if self.sbtarget:
----------------
bulbazord wrote:
> Are these used at all?
Not in this patch but I feel like it should be implemented already and this goes along with the breakpoint accessors and iterator.
================
Comment at: lldb/test/API/functionalities/interactive_scripted_process/interactive_scripted_process.py:269-278
+ bkpt_file = lldb.SBFileSpec(tf.name)
+ error = self.driving_target.BreakpointsWriteToFile(bkpt_file)
+ if error.Fail():
+ log("Failed to save breakpoints from driving target (%s)"
+ % error.GetCString())
+ bkpts_list = lldb.SBBreakpointList(self.target)
+ error = self.target.BreakpointsCreateFromFile(bkpt_file, bkpts_list)
----------------
bulbazord wrote:
> It's interesting that we dump to a file. It'd be cool if we could dump it to a StructuredData or something instead of a file.
100% agree, I'll do that as a followup.
================
Comment at: lldb/test/API/functionalities/interactive_scripted_process/interactive_scripted_process.py:282
+ if error.Success():
+ self.driving_target.DeleteAllBreakpoints()
+ for bkpt in self.target.breakpoints:
----------------
bulbazord wrote:
> Why do we delete all of the breakpoints just to re-set them afterwards? Is there a difference between what we set and what was there before?
There could be: Let's say the user set a breakpoint on the driving target (A) and a different one on the multiplexer target (B). We need first to copy all the driving target breakpoints to the multiplexer target, delete them and copy back all the multiplexer target breakpoints (A + B) to the driving target, to keep them in sync.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148548/new/
https://reviews.llvm.org/D148548
More information about the lldb-commits
mailing list