summaryrefslogtreecommitdiffstats
path: root/lldb/utils/lui/breakwin.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/utils/lui/breakwin.py')
-rw-r--r--lldb/utils/lui/breakwin.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/lldb/utils/lui/breakwin.py b/lldb/utils/lui/breakwin.py
index 7f675254ccf..3bdd44b1aea 100644
--- a/lldb/utils/lui/breakwin.py
+++ b/lldb/utils/lui/breakwin.py
@@ -11,27 +11,40 @@ import cui
import curses
import lldb, lldbutil
-class BreakWin(cui.TitledWin):
+class BreakWin(cui.ListWin):
def __init__(self, driver, x, y, w, h):
- super(BreakWin, self).__init__(x, y, w, h, 'Breakpoints')
- self.win.scrollok(1)
- super(BreakWin, self).draw()
+ super(BreakWin, self).__init__(x, y, w, h)
self.driver = driver
+ self.update()
def handleEvent(self, event):
if isinstance(event, lldb.SBEvent):
if lldb.SBBreakpoint.EventIsBreakpointEvent(event):
self.update()
+ if isinstance(event, int):
+ if event == ord('d'):
+ self.deleteSelected()
+ super(BreakWin, self).handleEvent(event)
+
+ def deleteSelected(self):
+ if self.getSelected() == -1:
+ return
+ target = self.driver.getTarget()
+ if not target.IsValid():
+ return
+ bp = target.GetBreakpointAtIndex(self.getSelected())
+ target.BreakpointDelete(bp.id)
def update(self):
target = self.driver.getTarget()
if not target.IsValid():
return
- self.win.addstr(0, 0, '')
+ selected = self.getSelected()
+ self.clearItems()
for i in range(0, target.GetNumBreakpoints()):
bp = target.GetBreakpointAtIndex(i)
if bp.IsInternal():
continue
text = lldbutil.get_description(bp)
- self.win.addstr(text)
- self.win.addstr('\n')
+ self.addItem(text)
+ self.setSelected(selected)
OpenPOWER on IntegriCloud