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 <e...@ispras.ru> * 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