From d8a5cc91e6559e11ca28e6a915017433b14b12d1 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 11 Apr 2013 21:37:45 +0200 Subject: python-gdb.py: Replace invalid Unicode character with U+FFFD to be able to display invalid strings. Such strings can be found while Python is creating a new string, in a text decoder for example, when Python is compiled in debug mode. --- Tools/gdb/libpython.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index cab226e..20dcda8 100644 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -1160,7 +1160,9 @@ class PyUnicodeObjectPtr(PyObjectPtr): # Convert the int code points to unicode characters, and generate a # local unicode instance. # This splits surrogate pairs if sizeof(Py_UNICODE) is 2 here (in gdb). - result = u''.join([_unichr(ucs) for ucs in Py_UNICODEs]) + result = u''.join([ + (_unichr(ucs) if ucs <= 0x10ffff else '\ufffd') + for ucs in Py_UNICODEs]) return result def write_repr(self, out, visited): -- cgit v0.12