本文整理汇总了C++中InjectedScript::setExceptionValue方法的典型用法代码示例。如果您正苦于以下问题:C++ InjectedScript::setExceptionValue方法的具体用法?C++ InjectedScript::setExceptionValue怎么用?C++ InjectedScript::setExceptionValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InjectedScript
的用法示例。
在下文中一共展示了InjectedScript::setExceptionValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: didPause
void InspectorDebuggerAgent::didPause(JSC::ExecState* scriptState, const Deprecated::ScriptValue& callFrames, const Deprecated::ScriptValue& exceptionOrCaughtValue)
{
ASSERT(scriptState && !m_pausedScriptState);
m_pausedScriptState = scriptState;
m_currentCallStack = callFrames;
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(scriptState);
// If a high level pause pause reason is not already set, try to infer a reason from the debugger.
if (m_breakReason == DebuggerFrontendDispatcher::Reason::Other) {
switch (scriptDebugServer().reasonForPause()) {
case JSC::Debugger::PausedForBreakpoint: {
JSC::BreakpointID debuggerBreakpointId = scriptDebugServer().pausingBreakpointID();
if (debuggerBreakpointId != m_continueToLocationBreakpointID) {
m_breakReason = DebuggerFrontendDispatcher::Reason::Breakpoint;
m_breakAuxData = buildBreakpointPauseReason(debuggerBreakpointId);
}
break;
}
case JSC::Debugger::PausedForDebuggerStatement:
m_breakReason = DebuggerFrontendDispatcher::Reason::DebuggerStatement;
m_breakAuxData = nullptr;
break;
case JSC::Debugger::PausedForException:
m_breakReason = DebuggerFrontendDispatcher::Reason::Exception;
m_breakAuxData = buildExceptionPauseReason(exceptionOrCaughtValue, injectedScript);
break;
case JSC::Debugger::PausedAtStatement:
case JSC::Debugger::PausedAfterCall:
case JSC::Debugger::PausedBeforeReturn:
case JSC::Debugger::PausedAtStartOfProgram:
case JSC::Debugger::PausedAtEndOfProgram:
// Pause was just stepping. Nothing to report.
break;
case JSC::Debugger::NotPaused:
ASSERT_NOT_REACHED();
break;
}
}
// Set $exception to the exception or caught value.
if (!exceptionOrCaughtValue.hasNoValue() && !injectedScript.hasNoValue()) {
injectedScript.setExceptionValue(exceptionOrCaughtValue);
m_hasExceptionValue = true;
}
m_frontendDispatcher->paused(currentCallFrames(injectedScript), m_breakReason, m_breakAuxData);
m_javaScriptPauseScheduled = false;
if (m_continueToLocationBreakpointID != JSC::noBreakpointID) {
scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointID);
m_continueToLocationBreakpointID = JSC::noBreakpointID;
}
if (m_listener)
m_listener->didPause();
RefPtr<Stopwatch> stopwatch = m_injectedScriptManager->inspectorEnvironment().executionStopwatch();
if (stopwatch && stopwatch->isActive()) {
stopwatch->stop();
m_didPauseStopwatch = true;
}
}