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
Represents a symtab_command structure
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionSymbolTableCommand(BinaryReader loadCommandReader, BinaryReader dataReader, MachHeader header) Creates and parses a newSymbolTableCommand -
Method Summary
Modifier and TypeMethodDescriptionGets the name of this load commandintAn integer indicating the number of entries in the symbol table.intAn integer containing the byte offset from the start of the image to the location of the string table.intAn integer indicating the size (in bytes) of the string table.getSymbolAt(int index) intAn integer containing the byte offset from the start of the file to the location of the symbol table entries.voidmarkup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log) Marks-up the program with the data structures for this load commandReturns 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, updateMonitor
-
Constructor Details
-
SymbolTableCommand
public SymbolTableCommand(BinaryReader loadCommandReader, BinaryReader dataReader, MachHeader header) throws IOException Creates and parses a newSymbolTableCommand- Parameters:
loadCommandReader- Areaderthat points to the start of the load commanddataReader- Areaderthat can read the data that the load command references. Note that this might be in a different underlying provider.header- Theheaderassociated with this load command- Throws:
IOException- if an IO-related error occurs while parsing
-
-
Method Details
-
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
-
getSymbolAt
-
toDataType
Description copied from interface:StructConverterReturns 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 existsIOException- See Also:
-
getCommandName
Description copied from class:LoadCommandGets the name of this load command- Specified by:
getCommandNamein classLoadCommand- Returns:
- The name of this load command
-
markup
public void markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log) Description copied from class:LoadCommandMarks-up the program with the data structures for this load command- Specified by:
markupin 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
-