Class SymbolTableCommand
- java.lang.Object
-
- ghidra.app.util.bin.format.macho.commands.LoadCommand
-
- ghidra.app.util.bin.format.macho.commands.SymbolTableCommand
-
- All Implemented Interfaces:
StructConverter
public class SymbolTableCommand extends LoadCommand
Represents a symtab_command structure.- See Also:
- mach-o/loader.h
-
-
Constructor Summary
Constructors Constructor Description SymbolTableCommand()
DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SymbolTableCommand
createSymbolTableCommand(FactoryBundledWithBinaryReader reader, MachHeader header)
java.lang.String
getCommandName()
Returns the name of this command.int
getNumberOfSymbols()
An integer indicating the number of entries in the symbol table.int
getStringTableOffset()
An integer containing the byte offset from the start of the image to the location of the string table.int
getStringTableSize()
An integer indicating the size (in bytes) of the string table.NList
getSymbolAt(int index)
int
getSymbolOffset()
An integer containing the byte offset from the start of the file to the location of the symbol table entries.java.util.List<NList>
getSymbols()
void
markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
Mark-up the program with the data structures for this load command.DataType
toDataType()
Returns a structure datatype representing the contents of the implementor of this interface.-
Methods inherited from class ghidra.app.util.bin.format.macho.commands.LoadCommand
createFragment, getCommandSize, getCommandType, getStartIndex, initLoadCommand, updateMonitor
-
-
-
-
Method Detail
-
createSymbolTableCommand
public static SymbolTableCommand createSymbolTableCommand(FactoryBundledWithBinaryReader reader, MachHeader header) throws java.io.IOException
- Throws:
java.io.IOException
-
getSymbolOffset
public int getSymbolOffset()
An integer containing the byte offset from the start of the file to the location of the symbol table entries. The symbol table is an array of nlist data structures.- Returns:
- symbol table offset
-
getNumberOfSymbols
public int getNumberOfSymbols()
An integer indicating the number of entries in the symbol table.- Returns:
- the number of entries in the symbol table
-
getStringTableOffset
public int getStringTableOffset()
An integer containing the byte offset from the start of the image to the location of the string table.- Returns:
- string table offset
-
getStringTableSize
public int getStringTableSize()
An integer indicating the size (in bytes) of the string table.- Returns:
- string table size in bytes
-
getSymbols
public java.util.List<NList> getSymbols()
-
getSymbolAt
public NList getSymbolAt(int index)
-
toDataType
public DataType toDataType() throws DuplicateNameException, java.io.IOException
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.
- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException
- when a datatype of the same name already existsjava.io.IOException
- See Also:
StructureDataType
-
getCommandName
public java.lang.String getCommandName()
Description copied from class:LoadCommand
Returns the name of this command.- Specified by:
getCommandName
in classLoadCommand
- Returns:
- the name of this command
-
markup
public void markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
Description copied from class:LoadCommand
Mark-up the program with the data structures for this load command.- Specified by:
markup
in classLoadCommand
- Parameters:
header
- the mach headerapi
- the flat program apibaseAddress
- the base address to apply the mark-upisBinary
- true if mach-o was loaded as binaryparentModule
- parent module to create fragmentsmonitor
- the task monitorlog
- the message logS
-
-