Package ghidra.app.util.bin.format.pe.debug

# Class DebugDirectoryParser

java.lang.Object
ghidra.app.util.bin.format.pe.debug.DebugDirectoryParser

All Implemented Interfaces:
  `OffsetValidator`

public class DebugDirectoryParser extends Object implements OffsetValidator
A helper class to parsing different types of debug information from a debug directory

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final byte`
  `IMAGE_DEBUG_TYPE_BORLAND`
  Borland debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_CLSID`
  CLS ID debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_CODEVIEW`
  CodeView debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_COFF`
  COFF debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_EXCEPTION`
  Exception debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_FIXUP`
  Fixup debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_FPO`
  FPO debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_MISC`
  Misc debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_OMAP_FROM_SRC`
  OMAP-From-Source debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_OMAP_TO_SRC`
  OMAP-To-Source debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_RESERVED10`
  Reserved debug type.
  `static final byte`
  `IMAGE_DEBUG_TYPE_UNKNOWN`
  Unknown debug type.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DebugDirectoryParser(BinaryReader reader, long ptr, int size, long sizeOfImage)`
  Constructs a new debug directory parser.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `checkPointer(long ptr)`
  `boolean`
  `checkRVA(long rva)`
  `DebugCodeView`
  `getDebugCodeView()`
  Returns the CodeView debug information, or null if it does not exists.
  `DebugCOFFSymbolsHeader`
  `getDebugCOFFSymbolsHeader()`
  Returns the COFF debug information, or null if it does not exists.
  `DebugDirectory[]`
  `getDebugDirectories()`
  `DebugFixup`
  `getDebugFixup()`
  Returns the Fixup debug information, or null if it does not exists.
  `DebugMisc`
  `getDebugMisc()`
  Returns the miscellaneous debug information, or null if it does not exists.

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

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

- ## Field Details

  - ### IMAGE_DEBUG_TYPE_UNKNOWN

    public static final byte IMAGE_DEBUG_TYPE_UNKNOWN
    Unknown debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_COFF

    public static final byte IMAGE_DEBUG_TYPE_COFF
    COFF debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_CODEVIEW

    public static final byte IMAGE_DEBUG_TYPE_CODEVIEW
    CodeView debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_FPO

    public static final byte IMAGE_DEBUG_TYPE_FPO
    FPO debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_MISC

    public static final byte IMAGE_DEBUG_TYPE_MISC
    Misc debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_EXCEPTION

    public static final byte IMAGE_DEBUG_TYPE_EXCEPTION
    Exception debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_FIXUP

    public static final byte IMAGE_DEBUG_TYPE_FIXUP
    Fixup debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_OMAP_TO_SRC

    public static final byte IMAGE_DEBUG_TYPE_OMAP_TO_SRC
    OMAP-To-Source debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_OMAP_FROM_SRC

    public static final byte IMAGE_DEBUG_TYPE_OMAP_FROM_SRC
    OMAP-From-Source debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_BORLAND

    public static final byte IMAGE_DEBUG_TYPE_BORLAND
    Borland debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_RESERVED10

    public static final byte IMAGE_DEBUG_TYPE_RESERVED10
    Reserved debug type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DEBUG_TYPE_CLSID

    public static final byte IMAGE_DEBUG_TYPE_CLSID
    CLS ID debug type.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DebugDirectoryParser

    public DebugDirectoryParser(BinaryReader reader, long ptr, int size, long sizeOfImage) throws IOException
    Constructs a new debug directory parser.
    Parameters:
      `reader` - the binary reader
      `ptr` - the pointer into the binary reader
      `size` - the size of the directory
      `sizeOfImage` - the size of the image in memory
    Throws:
      `IOException` - if an I/O error occurs

- ## Method Details

  - ### getDebugDirectories

    public DebugDirectory[] getDebugDirectories()

  - ### getDebugMisc

    public DebugMisc getDebugMisc()
    Returns the miscellaneous debug information, or null if it does not exists.
    Returns:
      the miscellaneous debug information

  - ### getDebugCodeView

    public DebugCodeView getDebugCodeView()
    Returns the CodeView debug information, or null if it does not exists.
    Returns:
      the CodeView debug information

  - ### getDebugCOFFSymbolsHeader

    public DebugCOFFSymbolsHeader getDebugCOFFSymbolsHeader()
    Returns the COFF debug information, or null if it does not exists.
    Returns:
      the COFF debug information

  - ### getDebugFixup

    public DebugFixup getDebugFixup()
    Returns the Fixup debug information, or null if it does not exists.
    Returns:
      the Fixup debug information

  - ### checkPointer

    public boolean checkPointer(long ptr)
    Specified by:
      `checkPointer` in interface `OffsetValidator`

  - ### checkRVA

    public boolean checkRVA(long rva)
    Specified by:
      `checkRVA` in interface `OffsetValidator`