// Called directly from exception handling to indicate a user error handler // failed to handle an exeption. NB: this is quite distinct from the hook called // from iopThrow named phpDebuggerExceptionHook(). bool Debugger::InterruptException(CVarRef e) { TRACE(2, "Debugger::InterruptException\n"); if (RuntimeOption::EnableDebugger) { ThreadInfo *ti = ThreadInfo::s_threadInfo.getNoCheck(); if (ti->m_reqInjectionData.getDebugger()) { HPHP::Transl::VMRegAnchor _; InterruptVMHook(ExceptionThrown, e); } } return true; }
bool Debugger::InterruptException(CVarRef e) { if (RuntimeOption::EnableDebugger) { ThreadInfo *ti = ThreadInfo::s_threadInfo.getNoCheck(); if (ti->m_reqInjectionData.debugger) { if (hhvm) { InterruptVMHook(ExceptionThrown, e); } else { if (ti->m_top) { Eval::InterruptSiteFI site(ti->m_top, e); Eval::Debugger::Interrupt(ExceptionThrown, NULL, &site); if (site.isJumping()) { return false; } } } } } return true; }