diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 15c75713049471175ad972d2d63e4ac8d6221f5c..88c93a08e540c2072ed9236a26614abe2a9c93e4 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -198,6 +198,7 @@ void GdbEngine::initializeVariables()
     m_autoContinue = false;
     m_waitingForFirstBreakpointToBeHit = false;
     m_commandsToRunOnTemporaryBreak.clear();
+    m_cookieForToken.clear();
 }
 
 void GdbEngine::gdbProcError(QProcess::ProcessError error)
@@ -1361,6 +1362,10 @@ int GdbEngine::currentFrame() const
 
 bool GdbEngine::startDebugger(const QSharedPointer<DebuggerStartParameters> &sp)
 {
+    // This should be set by the constructor or in exitDebugger().
+    QTC_ASSERT(m_debuggingHelperState == DebuggingHelperUninitialized,
+        initializeVariables());
+
     debugMessage(DebuggerSettings::instance()->dump());
     QStringList gdbArgs;