本文整理汇总了C++中BreakPointInfoPtr::setBreakable方法的典型用法代码示例。如果您正苦于以下问题:C++ BreakPointInfoPtr::setBreakable方法的具体用法?C++ BreakPointInfoPtr::setBreakable怎么用?C++ BreakPointInfoPtr::setBreakable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BreakPointInfoPtr
的用法示例。
在下文中一共展示了BreakPointInfoPtr::setBreakable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processFlowControl
// Handle a continue cmd, or setup stepping.
void DebuggerProxy::processFlowControl(CmdInterrupt &cmd) {
TRACE(2, "DebuggerProxy::processFlowControl\n");
switch (m_flow->getType()) {
case DebuggerCommand::KindOfContinue:
if (!m_flow->decCount()) {
m_flow.reset();
}
break;
case DebuggerCommand::KindOfStep:
{
// allows the breakpoint to be hit again when returns
// from function call
BreakPointInfoPtr bp = getBreakPointAtCmd(cmd);
if (bp) {
bp->setBreakable(getRealStackDepth());
}
break;
}
case DebuggerCommand::KindOfOut:
case DebuggerCommand::KindOfNext:
m_flow->setStackDepth(getStackDepth());
m_flow->setVMDepth(g_vmContext->m_nesting);
m_flow->setFileLine(cmd.getFileLine());
break;
default:
assert(false);
break;
}
}
示例2: setBreakableForBreakpointsNotMatching
// Allow breaks for previously disabled breakpoints that do not match the site
// of cmd. (Call this when processing an interrupt since this probably means
// that execution has moved away from the previous interrupt site.)
void DebuggerProxy::setBreakableForBreakpointsNotMatching(CmdInterrupt& cmd) {
TRACE(2, "DebuggerProxy::setBreakableForBreakpointsNotMatching\n");
auto stackDepth = getRealStackDepth();
for (unsigned int i = 0; i < m_breakpoints.size(); ++i) {
BreakPointInfoPtr bp = m_breakpoints[i];
if (bp != nullptr && bp->m_state != BreakPointInfo::Disabled &&
!bp->match(*this, cmd.getInterruptType(), *cmd.getSite())) {
bp->setBreakable(stackDepth);
}
}
}
示例3: onSetup
void CmdStep::onSetup(DebuggerProxy *proxy, CmdInterrupt &interrupt) {
assert(!m_complete); // Complete cmds should not be asked to do work.
CmdFlowControl::onSetup(proxy, interrupt);
// Allows a breakpoint on this same line to be hit again when control returns
// from function call.
BreakPointInfoPtr bp = proxy->getBreakPointAtCmd(interrupt);
if (bp) {
bp->setBreakable(proxy->getRealStackDepth());
}
installLocationFilterForLine(interrupt.getSite());
m_needsVMInterrupt = true;
}