diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 1a0ede266267c53d89e6496fcf364d1065ca15f4..80d0a046fc3179f334fa054f8ba1abcd59500cdd 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -3647,11 +3647,16 @@ void GdbEngine::handleStackListLocals(const GdbResultRecord &record)
     // stage 2/2
 
     // There could be shadowed variables
-    QHash<QString, int> seen;
     QList<GdbMi> locals = record.data.findChild("locals").children();
     locals += m_currentFunctionArgs;
 
+    setLocals(locals);
+}
+
+void GdbEngine::setLocals(const QList<GdbMi> &locals) 
+{ 
     //qDebug() << m_varToType;
+    QHash<QString, int> seen;
 
     foreach (const GdbMi &item, locals) {
         #ifdef Q_OS_MAC
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 85f72dc84d7216c982673113e3dd1494bc6b1ea2..b3e13233526754ac0d0c41bec3992bd668f19913 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -326,6 +326,7 @@ private:
     void handleVarListChildrenHelper(const GdbMi &child,
         const WatchData &parent);
     void setWatchDataType(WatchData &data, const GdbMi &mi);
+    void setLocals(const QList<GdbMi> &locals);
 
     QString m_editedData;
     int m_pendingRequests;