Struct gimli::read::EntriesTree [−][src]
pub struct EntriesTree<'abbrev, 'unit, R> where
R: Reader, { /* fields omitted */ }
Expand description
The state information for a tree view of the Debugging Information Entries.
The EntriesTree
can be used to recursively iterate through the DIE
tree, following the parent/child relationships. The EntriesTree
contains
shared state for all nodes in the tree, avoiding any duplicate parsing of
entries during the traversal.
Example Usage
let unit = get_some_unit();
let abbrevs = get_abbrevs_for_unit(&unit);
let mut tree = unit.entries_tree(&abbrevs, None)?;
let root = tree.root()?;
process_tree(root)?;
fn process_tree<R>(mut node: gimli::EntriesTreeNode<R>) -> gimli::Result<()>
where R: gimli::Reader
{
{
// Examine the entry attributes.
let mut attrs = node.entry().attrs();
while let Some(attr) = attrs.next()? {
}
}
let mut children = node.children();
while let Some(child) = children.next()? {
// Recursively process a child.
process_tree(child);
}
Ok(())
}
Implementations
Returns the root node of the tree.
Trait Implementations
Auto Trait Implementations
impl<'abbrev, 'unit, R> !RefUnwindSafe for EntriesTree<'abbrev, 'unit, R>
impl<'abbrev, 'unit, R> Send for EntriesTree<'abbrev, 'unit, R> where
R: Send + Sync,
<R as Reader>::Offset: Send + Sync,
impl<'abbrev, 'unit, R> !Sync for EntriesTree<'abbrev, 'unit, R>
impl<'abbrev, 'unit, R> Unpin for EntriesTree<'abbrev, 'unit, R> where
R: Unpin,
<R as Reader>::Offset: Unpin,
impl<'abbrev, 'unit, R> UnwindSafe for EntriesTree<'abbrev, 'unit, R> where
R: UnwindSafe + RefUnwindSafe,
<R as Reader>::Offset: UnwindSafe + RefUnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more