From 1011450ca3d81f66ba2ae741196637b329b3b970 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Thu, 27 Aug 2009 18:12:03 +0200
Subject: [PATCH] debugger: make list access in dumpers a bit more robust

---
 share/qtcreator/gdbmacros/gdbmacros.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp
index 3465b7e9455..e4618dc0d23 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.cpp
+++ b/share/qtcreator/gdbmacros/gdbmacros.cpp
@@ -839,7 +839,7 @@ void QDumper::putHash(const char *name, QChar value)
     endHash();
 }
 
-#define DUMPUNKNOWN_MESSAGE "<internal error>"
+#define DUMPUNKNOWN_MESSAGE "<not in scope>"
 static void qDumpUnknown(QDumper &d, const char *why = 0)
 {
     //d.putItem("iname", d.iname);
@@ -1570,6 +1570,10 @@ static void qDumpQList(QDumper &d)
         qCheckAccess(ldata.d->array);
         //qCheckAccess(ldata.d->array[0]);
         //qCheckAccess(ldata.d->array[nn - 1]);
+        if (ldata.d->begin < 0)
+            return;
+        if (ldata.d->begin > ldata.d->end)
+            return;
 #if QT_VERSION >= 0x040400
         if (ldata.d->ref._q_value <= 0)
             return;
@@ -3256,7 +3260,7 @@ static void qDumpStdVectorBool(QDumper &d)
     return qDumpStdVector(d);
 }
 
-static void handleProtocolVersion2and3(QDumper & d)
+static void handleProtocolVersion2and3(QDumper &d)
 {
     if (!d.outertype[0]) {
         qDumpUnknown(d);
-- 
GitLab