Hi,
This silences UnicodeDecodeError Python exceptions raised when trying to
print a tree with a corrupt (or uninitialized) code in Gdb:
Python Exception <class 'UnicodeDecodeError'> 'utf-8' codec can't decode
byte 0xb8 in position 0: invalid start byte:
With this patch, TreePrinter would print such trees generically like
this (in the format it uses for null trees):
<tree 0x7f8459c76500>
Eugene
2018-04-18 Eugene Sharygin <[email protected]>
* gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
corrupt codes.
---
gcc/gdbhooks.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc/gdbhooks.py b/gcc/gdbhooks.py
index bbe7618e299..7b1a7be0002 100644
--- a/gcc/gdbhooks.py
+++ b/gcc/gdbhooks.py
@@ -229,7 +229,10 @@ class TreePrinter:
val_code_name = val_tree_code_name[intptr(val_TREE_CODE)]
#print(val_code_name.string())
- result = '<%s 0x%x' % (val_code_name.string(), intptr(self.gdbval))
+ try:
+ result = '<%s 0x%x' % (val_code_name.string(), intptr(self.gdbval))
+ except:
+ return '<tree 0x%x>' % intptr(self.gdbval)
if intptr(val_tclass) == tcc_declaration:
tree_DECL_NAME = self.node.DECL_NAME()
if tree_DECL_NAME.is_nonnull():
--
2.21.0