Package ghidra.app.util.bin.format.pdb

# Class PdbInfoDotNet

java.lang.Object
ghidra.app.util.bin.format.pdb.PdbInfoDotNet

All Implemented Interfaces:
  `PdbInfo`, `StructConverter`

public class PdbInfoDotNet extends Object implements StructConverter, PdbInfo
Newer style pdb information, using a GUID to link the pdb to its binary.

- ## Field Summary

  ### Fields inherited from interface ghidra.app.util.bin.StructConverter

  `ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static PdbInfoDotNet`
  `fromValues(String pdbPath, int age, GUID guid)`
  Creates an instance from explicit values.
  `static boolean`
  `isMatch(BinaryReader reader, long offset)`
  Returns true if the pdb information at the specified offset is a `PdbInfoDotNet` type (based on the signature at that offset).
  `boolean`
  `isValid()`
  Returns true if this instance is valid.
  `static PdbInfoDotNet`
  `read(BinaryReader reader, long offset)`
  Reads an instance from the stream.
  `void`
  `serializeToOptions(Options options)`
  Writes the various PDB info fields to a program's options.
  `DataType`
  `toDataType()`
  Returns a structure datatype representing the contents of the implementor of this interface.

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

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

- ## Method Details

  - ### isMatch

    public static boolean isMatch(BinaryReader reader, long offset) throws IOException
    Returns true if the pdb information at the specified offset is a `PdbInfoDotNet` type (based on the signature at that offset).
    Parameters:
      `reader` - `BinaryReader`
      `offset` - offset of the Pdb information
    Returns:
      boolean true if it is a `PdbInfoDotNet` type
    Throws:
      `IOException` - if error reading data

  - ### read

    public static PdbInfoDotNet read(BinaryReader reader, long offset) throws IOException
    Reads an instance from the stream.
    Parameters:
      `reader` - `BinaryReader` to read from
      `offset` - position of the pdb info
    Returns:
      new instance, never null
    Throws:
      `IOException` - if IO error or data format error

  - ### fromValues

    public static PdbInfoDotNet fromValues(String pdbPath, int age, GUID guid)
    Creates an instance from explicit values.
    Parameters:
      `pdbPath` - String path / filename of the pdb file
      `age` - age
      `guid` - `GUID`
    Returns:
      new instance, never null

  - ### isValid

    public boolean isValid()
    Description copied from interface: `PdbInfo`
    Returns true if this instance is valid.
    Specified by:
      `isValid` in interface `PdbInfo`
    Returns:
      boolean true if valid (magic signature matches and fields have valid data)

  - ### serializeToOptions

    public void serializeToOptions(Options options)
    Description copied from interface: `PdbInfo`
    Writes the various PDB info fields to a program's options.
    Specified by:
      `serializeToOptions` in interface `PdbInfo`
    Parameters:
      `options` - Options of a Program to write to

  - ### toDataType

    public DataType toDataType()
    Description copied from interface: `StructConverter`
    Returns a structure datatype representing the contents of the implementor of this interface.

    For example, given:

         class A {
             int foo;
             double bar;
         }

    The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

    Specified by:
      `toDataType` in interface `StructConverter`
    Returns:
      returns a structure datatype representing the implementor of this interface
    See Also:
      - `StructureDataType`