When I hit a breakpoint on Windows, I'm doing something like this: BreakpointSiteSP site(GetBreakpointSiteList().FindByAddress(pc)); lldb::break_id_t break_id = LLDB_INVALID_BREAK_ID; bool should_stop = true; if (site) { should_stop = site->ValidForThisThread(stop_thread.get()); break_id = site->GetID(); }
stop_info = StopInfo::CreateStopReasonWithBreakpointSiteID(*stop_thread, break_id, should_stop); stop_thread->SetStopInfo(stop_info); When should_stop is true (which for now is basically always), this results in the breakpoint's hit count not increasing. It seems this is because specifying a value for should_stop leads to m_should_stop_is_valid being initialized to true. But in StopInfoBreakpoint::ShouldStopSynchronous(), we only bump the hit count if m_should_stop_is_valid is false. I can fix this bug by using StopInfo::CreateStopReasonWithBreakpointSiteID(*stop_thread, break_id); instead, and since m_stop_info_is_valid is false, and it bumps the hit count later. But I'm not sure if this is the right thing to do, or if the behavior I'm seeing with specifying a value for should_stop on creation and the hit count not going up is a bug. Can anyone explain this?
_______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev