summaryrefslogtreecommitdiffstats
path: root/Tools/gdb
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-04-11 19:37:45 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2013-04-11 19:37:45 (GMT)
commitd8a5cc91e6559e11ca28e6a915017433b14b12d1 (patch)
treec4446c1b935248a18aeb30d17a86a97d61fd7437 /Tools/gdb
parentdc040f099d580029852555921b3483da027326c1 (diff)
downloadcpython-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.py4
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):