Class StringTable

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

public class StringTable extends Object
A offset-to-String string table backed by a simple byte array (encoded as UTF-8).

Requested strings are instantiated when requested.

  • Constructor Details

    • StringTable

      public StringTable(byte[] bytes)
      Creates a StringTable using the bytes contained in the supplied array.
  • Method Details

    • readStringTable

      public static StringTable readStringTable(ByteProvider bp) throws IOException
      Create a StringTable by reading the entire contents of a ByteProvider into memory.

      If the specified ByteProvider is null, an empty string table will be constructed.

      Parameters:
      bp -
      Returns:
      Throws:
      IOException
    • isValid

      public boolean isValid(long offset)
      Returns true if the specified offset is a valid offset for this string table.

      Parameters:
      offset -
      Returns:
    • clear

      public void clear()
    • getStringAtOffset

      public String getStringAtOffset(long offset) throws IOException
      Returns the string found at offset, or throws an IOException if the offset is out of bounds.
      Parameters:
      offset -
      Returns:
      a string, never null.
      Throws:
      IOException - if not found
    • getByteCount

      public int getByteCount()
    • add

      public void add(int offset, String s)
      Modifies the string table to add a string at a specified offset, growing the internal byte[] storage as necessary to accommodate the string at the offset.

      Used for unit tests to construct a custom string table for test cases.

      Parameters:
      offset - where to place the string in the table
      s - string to insert into table