diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-04-11 19:37:45 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-04-11 19:37:45 (GMT) |
commit | d8a5cc91e6559e11ca28e6a915017433b14b12d1 (patch) | |
tree | c4446c1b935248a18aeb30d17a86a97d61fd7437 /Tools/gdb | |
parent | dc040f099d580029852555921b3483da027326c1 (diff) | |
download | cpython-d8a5cc91e6559e11ca28e6a915017433b14b12d1.zip cpython-d8a5cc91e6559e11ca28e6a915017433b14b12d1.tar.gz cpython-d8a5cc91e6559e11ca28e6a915017433b14b12d1.tar.bz2 |
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.
Diffstat (limited to 'Tools/gdb')
-rw-r--r-- | Tools/gdb/libpython.py | 4 |
1 files changed, 3 insertions, 1 deletions
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): |