// NB: unlike most other commands, the client expects that more interrupts // can occur while we're doing the server-side work for an eval. bool CmdEval::onServer(DebuggerProxy &proxy) { PCFilter* locSave = g_vmContext->m_lastLocFilter; g_vmContext->m_lastLocFilter = new PCFilter(); g_vmContext->setDebuggerBypassCheck(m_bypassAccessCheck); proxy.ExecutePHP(m_body, m_output, m_frame, m_failed, DebuggerProxy::ExecutePHPFlagsAtInterrupt | (!proxy.isLocal() ? DebuggerProxy::ExecutePHPFlagsLog : DebuggerProxy::ExecutePHPFlagsNone)); g_vmContext->setDebuggerBypassCheck(false); delete g_vmContext->m_lastLocFilter; g_vmContext->m_lastLocFilter = locSave; return proxy.sendToClient(this); }
// NB: unlike most other commands, the client expects that more interrupts // can occur while we're doing the server-side work for an eval. bool CmdEval::onServer(DebuggerProxy &proxy) { PCFilter locSave; RequestInjectionData &rid = ThreadInfo::s_threadInfo->m_reqInjectionData; locSave.swap(rid.m_flowFilter); g_context->debuggerSettings.bypassCheck = m_bypassAccessCheck; proxy.ExecutePHP(m_body, m_output, m_frame, m_failed, DebuggerProxy::ExecutePHPFlagsAtInterrupt | (!proxy.isLocal() ? DebuggerProxy::ExecutePHPFlagsLog : DebuggerProxy::ExecutePHPFlagsNone)); g_context->debuggerSettings.bypassCheck = false; locSave.swap(rid.m_flowFilter); return proxy.sendToClient(this); }
// NB: unlike most other commands, the client expects that more interrupts // can occur while we're doing the server-side work for a print. bool CmdPrint::onServer(DebuggerProxy &proxy) { PCFilter* locSave = g_vmContext->m_lastLocFilter; g_vmContext->m_lastLocFilter = new PCFilter(); g_vmContext->setDebuggerBypassCheck(m_bypassAccessCheck); { EvalBreakControl eval(m_noBreak); bool failed; m_ret = proxy.ExecutePHP(DebuggerProxy::MakePHPReturn(m_body), m_output, m_frame, failed, DebuggerProxy::ExecutePHPFlagsAtInterrupt | (!proxy.isLocal() ? DebuggerProxy::ExecutePHPFlagsLog : DebuggerProxy::ExecutePHPFlagsNone)); } g_vmContext->setDebuggerBypassCheck(false); delete g_vmContext->m_lastLocFilter; g_vmContext->m_lastLocFilter = locSave; return proxy.sendToClient(this); }