Hi Daniel, If the tree is corrupted, I would think that you would want to know the specifics, i.e., aside from the somewhat cryptic readmem() error message. Perhaps it would be worth printing a more meaningful error message, something like: tree: rb_node: <address>: corrupt rb_left pointer: <address> That way you could do the 2 readmem() calls w/RETURN_ON_ERROR|QUIET, and just have the concise error message. Thanks, Dave ----- Original Message ----- > --- > tools.c | 23 ++++++++++++----------- > 1 file changed, 12 insertions(+), 11 deletions(-) > > diff --git a/tools.c b/tools.c > index 186b703463a5..992f4776281a 100644 > --- a/tools.c > +++ b/tools.c > @@ -4374,8 +4374,8 @@ rbtree_iteration(ulong node_p, struct tree_data *td, > char *pos) > { > int i; > uint print_radix; > - ulong struct_p, left_p, right_p; > - char left_pos[BUFSIZE], right_pos[BUFSIZE]; > + ulong struct_p, new_p; > + char new_pos[BUFSIZE]; > static struct req_entry **e; > > if (!node_p) > @@ -4430,16 +4430,17 @@ rbtree_iteration(ulong node_p, struct tree_data *td, > char *pos) > } > } > > - readmem(node_p+OFFSET(rb_node_rb_left), KVADDR, &left_p, > - sizeof(void *), "rb_node rb_left", FAULT_ON_ERROR); > - readmem(node_p+OFFSET(rb_node_rb_right), KVADDR, &right_p, > - sizeof(void *), "rb_node rb_right", FAULT_ON_ERROR); > - > - sprintf(left_pos, "%s/l", pos); > - sprintf(right_pos, "%s/r", pos); > + if ( readmem(node_p+OFFSET(rb_node_rb_left), KVADDR, &new_p, > + sizeof(void *), "rb_node rb_left", RETURN_ON_ERROR)) { > + sprintf(new_pos, "%s/l", pos); > + rbtree_iteration(new_p, td, new_pos); > + } > > - rbtree_iteration(left_p, td, left_pos); > - rbtree_iteration(right_p, td, right_pos); > + if ( readmem(node_p+OFFSET(rb_node_rb_right), KVADDR, &new_p, > + sizeof(void *), "rb_node rb_right", RETURN_ON_ERROR)) { > + sprintf(new_pos, "%s/r", pos); > + rbtree_iteration(new_p, td, new_pos); > + } > } > > void > -- > 2.16.2 > > -- > Crash-utility mailing list > Crash-utility@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/crash-utility > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility