diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index a9bccd6cfe65f6250376d34a0169f792d8cbaee1..492925541dde24c50dce485a4cf8e278a1334b1e 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -917,6 +917,8 @@ class Dumper:
         # Locals
         #
         locals = listOfLocals(varList);
+        if "nolocals" in options:
+            locals = []
 
         # Take care of the return value of the last function call.
         if len(resultVarName) > 0:
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index 3c8eb1a1eeb53137ce4919c83e4d8840401e0413..3acb3a1405570ae7d3a195b07af60ace8eea48d7 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -856,7 +856,7 @@ void testQSharedPointer()
 {
     //Employee e1(1, "Herbert");
     //Employee e2 = e1;
-
+#if 0
     QSharedPointer<int> iptr(new int(43));
     QSharedPointer<int> iptr2 = iptr;
     QSharedPointer<int> iptr3 = iptr;
@@ -872,6 +872,12 @@ void testQSharedPointer()
     QWeakPointer<QString> wptr(ptr);
     QWeakPointer<QString> wptr2 = wptr;
     QWeakPointer<QString> wptr3 = wptr;
+#endif
+
+    QSharedPointer<Foo> fptr(new Foo(1));
+    QWeakPointer<Foo> wfptr(fptr);
+    QWeakPointer<Foo> wfptr2 = wfptr;
+    QWeakPointer<Foo> wfptr3 = wfptr;
 }
 #endif
 
@@ -1669,6 +1675,7 @@ void testStuff()
 {
     FooVector const &f = fooVector();
     int i = f.size();
+    Q_UNUSED(i);
 }
 
 void testPassByReferenceHelper(Foo &f)
@@ -1731,6 +1738,7 @@ void testQSettings()
     QSettings settings("/tmp/test.ini", QSettings::IniFormat);
     QVariant value = settings.value("item1","").toString();
     int x = 1;
+    Q_UNUSED(x);
 }
 
 int main(int argc, char *argv[])