crash.types.rbtree module

exception crash.types.rbtree.CorruptTreeError[source]

Bases: TreeError

exception crash.types.rbtree.TreeError[source]

Bases: Exception

crash.types.rbtree.rbtree_postorder_for_each(root: Value) Iterable[Value][source]

Iterate over nodes of a rooted RB tree in post-order fashion

Parameters:

root – The tree to iterate. The value must be of type struct rb_root or struct rb_root *.

Yields:

gdb.Value – The next node of the tree. The value is of type struct rb_node.

Raises:

.CorruptTreeError – the list is corrupted

crash.types.rbtree.rbtree_postorder_for_each_entry(root: Value, gdbtype: Type, member: str) Iterable[Value][source]

Iterate over nodes of a rooted RB tree in post-order fashion and yield each node’s containing object

Parameters:
  • root – The tree to iterate. The value must be of type struct rb_root or struct rb_root *.

  • gdbtype – The type of the containing object

  • member – The name of the member in the containing object that corresponds to the rb_node

Yields:

gdb.Value – The next node of the tree. The value is of the specified type.

Raises:

.CorruptTreeError – the list is corrupted