From 2a28741f90f5353861c271a6173e5ce6b03ff01b Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Mon, 4 Jan 2010 16:15:32 +0100
Subject: [PATCH] debugger: str(p) is unsafe to use for invalid char *

---
 share/qtcreator/gdbmacros/dumper.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index 4980c0d5cd7..074c2cc95c3 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -177,8 +177,11 @@ def checkPointer(p, align = 1):
 
 
 def isNull(p):
-    s = str(p)
-    return s == "0x0" or s.startswith("0x0 ")
+    # The following can cause evaluation to abort with "UnicodeEncodeError"
+    # for invalid char *, as their "contents" is being examined
+    #s = str(p)
+    #return s == "0x0" or s.startswith("0x0 ")
+    return p.cast(gdb.lookup_type("unsigned long long")) == 0
 
 movableTypes = set([
     "QBrush", "QBitArray", "QByteArray",
-- 
GitLab