Class ExternalDebugFileSectionProvider

java.lang.Object
ghidra.app.util.bin.format.dwarf.sectionprovider.BaseSectionProvider
ghidra.app.util.bin.format.dwarf.sectionprovider.ExternalDebugFileSectionProvider
All Implemented Interfaces:
DWARFSectionProvider, Closeable, AutoCloseable

public class ExternalDebugFileSectionProvider extends BaseSectionProvider
A DWARFSectionProvider that reads .debug_info (and friends) sections from an external ELF file that is referenced in the original ELF file's build-id or debuglink sections.

Creates a pinning reference from the temporary external ELF debug file to this SectionProvider instance using the program's DomainObject.addConsumer(Object), and then releases the consumer when this instance is closed, allowing the temporary Program to be destroyed.

  • Field Details

    • PROGRAM_INFO_DWARF_EXTERNAL_DEBUG_FILE

      public static final String PROGRAM_INFO_DWARF_EXTERNAL_DEBUG_FILE
      See Also:
  • Method Details

    • createExternalSectionProviderFor

      public static DWARFSectionProvider createExternalSectionProviderFor(Program program, TaskMonitor monitor)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface DWARFSectionProvider
      Overrides:
      close in class BaseSectionProvider
    • updateProgramInfo

      public void updateProgramInfo(Program program)
      Description copied from interface: DWARFSectionProvider
      Decorate the specified program with any information that is unique to this section provider.
      Parameters:
      program - Program with an active transaction
    • getExternalDebugFileLocation

      public static FSRL getExternalDebugFileLocation(Program program)
      Returns the previously saved value of the external debug file location from the program's metadata.
      Parameters:
      program - DWARF that previously was analyzed
      Returns:
      FSRL of external debug file, or null if missing or corrupted value