gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
* gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory. * tree.c (get_tree_code_name): Likewise. * print-tree.c (print_node): Only briefly print a node with an invalid code. From-SVN: r272150
This commit is contained in:
parent
de6abd8514
commit
9281275764
@ -1,3 +1,10 @@
|
||||
2019-06-11 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
|
||||
* tree.c (get_tree_code_name): Likewise.
|
||||
* print-tree.c (print_node): Only briefly print a node with an
|
||||
invalid code.
|
||||
|
||||
2019-06-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR bootstrap/90819
|
||||
|
@ -222,6 +222,9 @@ class TreePrinter:
|
||||
# extern const enum tree_code_class tree_code_type[];
|
||||
# #define TREE_CODE_CLASS(CODE) tree_code_type[(int) (CODE)]
|
||||
|
||||
if val_TREE_CODE == 0xa5a5:
|
||||
return '<ggc_freed 0x%x>' % intptr(self.gdbval)
|
||||
|
||||
val_tree_code_type = gdb.parse_and_eval('tree_code_type')
|
||||
val_tclass = val_tree_code_type[val_TREE_CODE]
|
||||
|
||||
|
@ -233,6 +233,15 @@ print_node (FILE *file, const char *prefix, tree node, int indent,
|
||||
return;
|
||||
|
||||
code = TREE_CODE (node);
|
||||
|
||||
/* It is unsafe to look at any other fields of a node with ERROR_MARK or
|
||||
invalid code. */
|
||||
if (code == ERROR_MARK || code >= MAX_TREE_CODES)
|
||||
{
|
||||
print_node_brief (file, prefix, node, indent);
|
||||
return;
|
||||
}
|
||||
|
||||
tclass = TREE_CODE_CLASS (code);
|
||||
|
||||
/* Don't get too deep in nesting. If the user wants to see deeper,
|
||||
@ -251,13 +260,6 @@ print_node (FILE *file, const char *prefix, tree node, int indent,
|
||||
return;
|
||||
}
|
||||
|
||||
/* It is unsafe to look at any other fields of an ERROR_MARK node. */
|
||||
if (code == ERROR_MARK)
|
||||
{
|
||||
print_node_brief (file, prefix, node, indent);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Allow this function to be called if the table is not there. */
|
||||
if (table)
|
||||
{
|
||||
|
@ -13450,7 +13450,11 @@ get_tree_code_name (enum tree_code code)
|
||||
const char *invalid = "<invalid tree code>";
|
||||
|
||||
if (code >= MAX_TREE_CODES)
|
||||
return invalid;
|
||||
{
|
||||
if (code == 0xa5a5)
|
||||
return "ggc_freed";
|
||||
return invalid;
|
||||
}
|
||||
|
||||
return tree_code_name[code];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user