When I hit a breakpoint on Windows, I'm doing something like this:<div><br></div><div><div>        BreakpointSiteSP site(GetBreakpointSiteList().FindByAddress(pc));</div><div>        lldb::break_id_t break_id = LLDB_INVALID_BREAK_ID;</div><div>        bool should_stop = true;</div><div>        if (site)</div><div>        {</div><div>            should_stop = site->ValidForThisThread(stop_thread.get());</div><div>            break_id = site->GetID();</div><div>        }</div><div><br></div><div>        stop_info = StopInfo::CreateStopReasonWithBreakpointSiteID(*stop_thread, break_id, should_stop);</div><div>        stop_thread->SetStopInfo(stop_info);</div></div><div><br></div><div>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.</div><div><br></div><div>I can fix this bug by using </div><div><br></div><div>StopInfo::CreateStopReasonWithBreakpointSiteID(*stop_thread, break_id);</div><div><br></div><div>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.</div><div><br></div><div>Can anyone explain this?</div>