Index: src/inspector/v8-debugger-agent-impl.cc |
diff --git a/src/inspector/v8-debugger-agent-impl.cc b/src/inspector/v8-debugger-agent-impl.cc |
index 96c995aecf686bc85ced0b7551fbe508b9c141fd..0e073b81ca09a97ff9bc3f5e7075b7751c3efb76 100644 |
--- a/src/inspector/v8-debugger-agent-impl.cc |
+++ b/src/inspector/v8-debugger-agent-impl.cc |
@@ -1238,7 +1238,15 @@ void V8DebuggerAgentImpl::breakProgram( |
std::vector<BreakReason> currentScheduledReason; |
currentScheduledReason.swap(m_breakReason); |
pushBreakDetails(breakReason, std::move(data)); |
- if (!m_debugger->breakProgram(m_session->contextGroupId())) return; |
+ |
+ int contextGroupId = m_session->contextGroupId(); |
+ int sessionId = m_session->sessionId(); |
+ V8InspectorImpl* inspector = m_inspector; |
+ m_debugger->breakProgram(contextGroupId); |
+ // Check that session and |this| are still around. |
+ if (!inspector->sessionById(contextGroupId, sessionId)) return; |
+ if (!enabled()) return; |
+ |
popBreakDetails(); |
m_breakReason.swap(currentScheduledReason); |
if (!m_breakReason.empty()) { |