Class NList
- java.lang.Object
-
- ghidra.app.util.bin.format.macho.commands.NList
-
- All Implemented Interfaces:
StructConverter
public class NList extends java.lang.Object implements StructConverter
Represents an nlist and nlist_64 structure.- See Also:
- mach-o/nlist.h
-
-
Constructor Summary
Constructors Constructor Description NList()
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 NList
createNList(FactoryBundledWithBinaryReader reader, boolean is32bit)
short
getDescription()
A 16-bit value providing additional information about this symbol.int
getLibraryOrdinal()
byte
getSection()
An integer specifying the number of the section that this symbol can be found in, or NO_SECT if symbol is not found in a section of this image.java.lang.String
getString()
Returns the symbol string defined at the symbol table command string table offset plus n_strx.int
getStringTableIndex()
Returns the index into the string table.byte
getType()
Returns the symbol type flag.long
getValue()
An integer that contains the value of this symbol.void
initString(FactoryBundledWithBinaryReader reader, long stringTableOffset)
Initialize the string from the string table.boolean
isExternal()
boolean
isIndirect()
boolean
isLazyBind()
boolean
isPrivateExternal()
boolean
isSymbolicDebugging()
boolean
isThumbSymbol()
boolean
isTypeAbsolute()
boolean
isTypePreboundUndefined()
boolean
isTypeUndefined()
DataType
toDataType()
Returns a structure datatype representing the contents of the implementor of this interface.java.lang.String
toString()
-
-
-
Method Detail
-
createNList
public static NList createNList(FactoryBundledWithBinaryReader reader, boolean is32bit) throws java.io.IOException
- Throws:
java.io.IOException
-
initString
public void initString(FactoryBundledWithBinaryReader reader, long stringTableOffset)
Initialize the string from the string table.You MUST call this method after the NLIST element is created!
Reading a large NList table can cause a large performance issue if the strings are initialized as the NList entry is created. The string table indexes are scattered. Initializing the strings linearly from the string table is much faster.
- Parameters:
reader
-stringTableOffset
- offset of the string table
-
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.
- Specified by:
toDataType
in interfaceStructConverter
- 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
-
getString
public java.lang.String getString()
Returns the symbol string defined at the symbol table command string table offset plus n_strx.- Returns:
- the symbol string
-
getStringTableIndex
public int getStringTableIndex()
Returns the index into the string table.- Returns:
- the index into the string table
-
getType
public byte getType()
Returns the symbol type flag.- Returns:
- the symbol type flag
-
isTypeUndefined
public boolean isTypeUndefined()
-
isTypeAbsolute
public boolean isTypeAbsolute()
-
isTypePreboundUndefined
public boolean isTypePreboundUndefined()
-
isIndirect
public boolean isIndirect()
-
isSymbolicDebugging
public boolean isSymbolicDebugging()
-
isPrivateExternal
public boolean isPrivateExternal()
-
isExternal
public boolean isExternal()
-
isLazyBind
public boolean isLazyBind()
-
isThumbSymbol
public boolean isThumbSymbol()
-
getSection
public byte getSection()
An integer specifying the number of the section that this symbol can be found in, or NO_SECT if symbol is not found in a section of this image.- Returns:
- the number of the section
-
getDescription
public short getDescription()
A 16-bit value providing additional information about this symbol.- Returns:
- a 16-bit value providing additional information about this symbol
-
getValue
public long getValue()
An integer that contains the value of this symbol. The format of this value is different for each type of symbol.- Returns:
- the value of this symbol
-
getLibraryOrdinal
public int getLibraryOrdinal()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-