Package ghidra.app.util.bin.format.dwarf4.next

# Class DIEAMonitoredIterator

java.lang.Object
ghidra.app.util.bin.format.dwarf4.next.DIEAMonitoredIterator

public class DIEAMonitoredIterator extends Object
Handles the details of iterating all the `DIEAs` of a DWARF program.

DWARF programs are made of multiple compilation units (CUs), and each CU has `DIE`s that are grouped together into aggregates (DIEAs).

In normal operation, to iterate the DIEAs, each CU's DIEs are loaded into memory, iterated, and then thrown away before going to the next CU.

There are typically no DIE references between CUs, but if there are, `DWARFImportOptions.isPreloadAllDIEs()` needs to be turned on by the user before analysis begins.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DIEAMonitoredIterator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Iterable<DIEAggregate>`
  `iterable(DWARFProgram prog, String monitorMessage, TaskMonitor monitor)`
  Create an iterable to allow for-each usage of this iterator.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DIEAMonitoredIterator

    public DIEAMonitoredIterator()

- ## Method Details

  - ### iterable

    public static Iterable<DIEAggregate> iterable(DWARFProgram prog, String monitorMessage, TaskMonitor monitor)
    Create an iterable to allow for-each usage of this iterator.
    Parameters:
      `prog` - `DWARFProgram` that holds the DIEs.
      `monitorMessage` - String to display in the TaskMonitor.
      `monitor` - `TaskMonitor`
    Returns:
      Iterable that can be used in a for-each loop.