Fixed "void SBWatchpoint::SetEnabled (bool enabled)" to work properly and added a test for it.

https://llvm.org/bugs/show_bug.cgi?id=28729
<rdar://problem/27575225>

llvm-svn: 276914
This commit is contained in:
Greg Clayton
2016-07-27 20:47:49 +00:00
parent 94872ff11c
commit 8089e81ccd
2 changed files with 12 additions and 6 deletions

View File

@@ -64,17 +64,23 @@ class TestWatchpointEvents (TestBase):
if not error.Success():
self.fail ("Failed to make watchpoint for local_var: %s"%(error.GetCString()))
self.GetWatchpointEvent (lldb.eWatchpointEventTypeAdded)
self.GetWatchpointEvent(lldb.eWatchpointEventTypeAdded)
# Now change some of the features of this watchpoint and make sure we get events:
local_watch.SetEnabled(False)
self.GetWatchpointEvent (lldb.eWatchpointEventTypeDisabled)
self.GetWatchpointEvent(lldb.eWatchpointEventTypeDisabled)
local_watch.SetEnabled(True)
self.GetWatchpointEvent(lldb.eWatchpointEventTypeEnabled)
local_watch.SetIgnoreCount(10)
self.GetWatchpointEvent (lldb.eWatchpointEventTypeIgnoreChanged)
self.GetWatchpointEvent(lldb.eWatchpointEventTypeIgnoreChanged)
local_watch.SetCondition ("1 == 2")
self.GetWatchpointEvent (lldb.eWatchpointEventTypeConditionChanged)
condition = "1 == 2"
local_watch.SetCondition(condition)
self.GetWatchpointEvent(lldb.eWatchpointEventTypeConditionChanged)
self.assertTrue(local_watch.GetCondition() == condition, 'make sure watchpoint condition is "' + condition + '"');
def GetWatchpointEvent (self, event_type):
# We added a watchpoint so we should get a watchpoint added event.
event = lldb.SBEvent()

View File

@@ -159,7 +159,7 @@ SBWatchpoint::SetEnabled (bool enabled)
if (watchpoint_sp)
{
std::lock_guard<std::recursive_mutex> guard(watchpoint_sp->GetTarget().GetAPIMutex());
watchpoint_sp->GetTarget().DisableWatchpointByID(watchpoint_sp->GetID());
watchpoint_sp->SetEnabled(enabled);
}
}