本文整理汇总了C++中lldb::StopInfoSP类的典型用法代码示例。如果您正苦于以下问题:C++ StopInfoSP类的具体用法?C++ StopInfoSP怎么用?C++ StopInfoSP使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了StopInfoSP类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ExceptionBreakpointsExplainStop
bool ItaniumABILanguageRuntime::ExceptionBreakpointsExplainStop(
lldb::StopInfoSP stop_reason) {
if (!m_process)
return false;
if (!stop_reason || stop_reason->GetStopReason() != eStopReasonBreakpoint)
return false;
uint64_t break_site_id = stop_reason->GetValue();
return m_process->GetBreakpointSiteList().BreakpointSiteContainsBreakpoint(
break_site_id, m_cxx_exception_bp_sp->GetID());
}
示例2:
bool
ItaniumABILanguageRuntime::ExceptionBreakpointsExplainStop (lldb::StopInfoSP stop_reason)
{
if (!m_process)
return false;
if (!stop_reason ||
stop_reason->GetStopReason() != eStopReasonBreakpoint)
return false;
uint64_t break_site_id = stop_reason->GetValue();
lldb::BreakpointSiteSP bp_site_sp = m_process->GetBreakpointSiteList().FindByID(break_site_id);
if (!bp_site_sp)
return false;
uint32_t num_owners = bp_site_sp->GetNumberOfOwners();
bool check_cxx_exception = false;
break_id_t cxx_exception_bid;
bool check_cxx_exception_alloc = false;
break_id_t cxx_exception_alloc_bid;
if (m_cxx_exception_bp_sp)
{
check_cxx_exception = true;
cxx_exception_bid = m_cxx_exception_bp_sp->GetID();
}
if (m_cxx_exception_alloc_bp_sp)
{
check_cxx_exception_alloc = true;
cxx_exception_alloc_bid = m_cxx_exception_alloc_bp_sp->GetID();
}
for (uint32_t i = 0; i < num_owners; i++)
{
break_id_t bid = bp_site_sp->GetOwnerAtIndex(i)->GetBreakpoint().GetID();
if ((check_cxx_exception && (bid == cxx_exception_bid)) ||
(check_cxx_exception_alloc && (bid == cxx_exception_alloc_bid)))
return true;
}
return false;
}
示例3: if
bool
ThreadPlanStepRange::NextRangeBreakpointExplainsStop (lldb::StopInfoSP stop_info_sp)
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
if (!m_next_branch_bp_sp)
return false;
break_id_t bp_site_id = stop_info_sp->GetValue();
BreakpointSiteSP bp_site_sp = m_thread.GetProcess()->GetBreakpointSiteList().FindByID(bp_site_id);
if (!bp_site_sp)
return false;
else if (!bp_site_sp->IsBreakpointAtThisSite (m_next_branch_bp_sp->GetID()))
return false;
else
{
// If we've hit the next branch breakpoint, then clear it.
size_t num_owners = bp_site_sp->GetNumberOfOwners();
bool explains_stop = true;
// If all the owners are internal, then we are probably just stepping over this range from multiple threads,
// or multiple frames, so we want to continue. If one is not internal, then we should not explain the stop,
// and let the user breakpoint handle the stop.
for (size_t i = 0; i < num_owners; i++)
{
if (!bp_site_sp->GetOwnerAtIndex(i)->GetBreakpoint().IsInternal())
{
explains_stop = false;
break;
}
}
if (log)
log->Printf ("ThreadPlanStepRange::NextRangeBreakpointExplainsStop - Hit next range breakpoint which has %zu owners - explains stop: %u.",
num_owners,
explains_stop);
ClearNextBranchBreakpoint();
return explains_stop;
}
}