Record Class DWARFSourceInfo

java.lang.Object
java.lang.Record
ghidra.app.util.bin.format.dwarf.DWARFSourceInfo
Record Components:
filename - String filename
lineNum - int line number

public record DWARFSourceInfo(String filename, int lineNum) extends Record
Represents the filename and line number info values from DWARF DIEs.
  • Constructor Details

    • DWARFSourceInfo

      public DWARFSourceInfo(String filename, int lineNum)
      Creates an instance of a DWARFSourceInfo record class.
      Parameters:
      filename - the value for the filename record component
      lineNum - the value for the lineNum record component
  • Method Details

    • create

      public static DWARFSourceInfo create(DIEAggregate diea)
      Creates a new DWARFSourceInfo instance from the supplied DIEAggregate if the info is present, otherwise returns null;
      Parameters:
      diea - DIEAggregate to query for source info
      Returns:
      new DWARFSourceInfo with filename:linenum info, or null if no info present in DIEA.
    • getSourceInfoWithFallbackToParent

      public static DWARFSourceInfo getSourceInfoWithFallbackToParent(DIEAggregate diea)
      Creates a new DWARFSourceInfo instance from the supplied DIEAggregate, falling back to the parent containing DIE record if the first record did not have any source info.
      Parameters:
      diea - DIEAggregate to query for source info.
      Returns:
      new DWARFSourceInfo with filename:linenum info, or null if no info present in the specified DIEA and its parent.
    • getDescriptionStr

      public static String getDescriptionStr(DIEAggregate diea)
      Returns the source file and line number info attached to the specified DIEAggregate formatted as getDescriptionStr(), or null if not present.
      Parameters:
      diea - DIEAggregate to query
      Returns:
      string, see getDescriptionStr()
    • getDescriptionStr

      public String getDescriptionStr()
      Returns the source location info as a string formatted as "filename:linenum"
      Returns:
      "filename:linenum"
    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • filename

      public String filename()
      Returns the value of the filename record component.
      Returns:
      the value of the filename record component
    • lineNum

      public int lineNum()
      Returns the value of the lineNum record component.
      Returns:
      the value of the lineNum record component