Package org.eclipse.cdt.utils.macho.parser

# Class MachOBinaryObject64

java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.cdt.utils.BinaryFile
org.eclipse.cdt.utils.BinaryObjectAdapter
org.eclipse.cdt.utils.macho.parser.MachOBinaryObject64

All Implemented Interfaces:
  `IBinaryParser.IBinaryFile`, `IBinaryParser.IBinaryObject`, `org.eclipse.core.runtime.IAdaptable`

Direct Known Subclasses:
  `MachOBinaryExecutable64`, `MachOBinaryShared64`

public class MachOBinaryObject64 extends BinaryObjectAdapter
MachOBinaryObject64

Since:
  5.2

## Nested Class Summary

## Nested classes/interfaces inherited from class org.eclipse.cdt.utils.BinaryObjectAdapter

`BinaryObjectAdapter.BinaryObjectInfo`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected IAddressFactory`
`addressFactory`
`protected MachO64.Attribute`
`attributes`
`protected AR.ARHeader`
`header`
`protected boolean`
`is64`
`protected String[]`
`needed`
`protected MachOHelper64.Sizes`
`sizes`
`protected String`
`soname`
`protected IBinaryParser.ISymbol[]`
`symbols`
`protected long`
`timeStamp`

### Fields inherited from class org.eclipse.cdt.utils.BinaryObjectAdapter

`NO_SYMBOLS`

### Fields inherited from interface org.eclipse.cdt.core.IBinaryParser.IBinaryFile

`ARCHIVE, CORE, EXECUTABLE, OBJECT, SHARED`

## Constructor Summary

Constructors
Constructor
Description
`MachOBinaryObject64(IBinaryParser parser, org.eclipse.core.runtime.IPath path, int type)`
`MachOBinaryObject64(IBinaryParser parser, org.eclipse.core.runtime.IPath path, AR.ARHeader header)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`clearCachedValues()`
`<T> T`
`getAdapter(Class<T> adapter)`
`IAddressFactory`
`getAddressFactory()`
`protected BinaryObjectAdapter.BinaryObjectInfo`
`getBinaryObjectInfo()`
`long`
`getBSS()`
`InputStream`
`getContents()`
`protected CPPFilt`
`getCPPFilt()`
`String`
`getCPU()`
CPU name
`long`
`getData()`
`protected MachOHelper64`
`getMachOHelper()`
`String`
`getName()`
The name of the object
`String[]`
`getNeededSharedLibs()`
`String`
`getSoName()`
`IBinaryParser.ISymbol`
`getSymbol(IAddress addr)`
Symbo at this address.
`IBinaryParser.ISymbol[]`
`getSymbols()`
Symbols of the object
`long`
`getText()`
`protected boolean`
`hasChanged()`
`boolean`
`hasDebug()`
True if the binary contains debug information
`protected MachO64.Attribute`
`internalGetAttributes()`
`protected String[]`
`internalGetNeeded()`
`protected MachOHelper64.Sizes`
`internalGetSizes()`
`protected String`
`internalGetSoName()`
`protected IBinaryParser.ISymbol[]`
`internalGetSymbols()`
`boolean`
`isLittleEndian()`
The endian
`protected void`
`loadBinaryInfo()`
`protected IBinaryParser.ISymbol[]`
`loadSymbols(MachOHelper64 helper)`

### Methods inherited from class org.eclipse.cdt.utils.BinaryObjectAdapter

`toString`

### Methods inherited from class org.eclipse.cdt.utils.BinaryFile

`getBinaryParser, getPath, getType`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.cdt.core.IBinaryParser.IBinaryFile

`getBinaryParser, getPath, getType`

## Field Details

### header

protected AR.ARHeader header

### addressFactory

protected IAddressFactory addressFactory

### attributes

protected MachO64.Attribute attributes

### sizes

protected MachOHelper64.Sizes sizes

### symbols

protected IBinaryParser.ISymbol[] symbols

### soname

protected String soname

### needed

protected String[] needed

### timeStamp

protected long timeStamp

### is64

protected boolean is64

## Constructor Details

### MachOBinaryObject64

public MachOBinaryObject64(IBinaryParser parser, org.eclipse.core.runtime.IPath path, AR.ARHeader header)

Parameters:
  `parser` -
  `path` -
  `header` -

### MachOBinaryObject64

public MachOBinaryObject64(IBinaryParser parser, org.eclipse.core.runtime.IPath path, int type)

Parameters:
  `parser` -
  `path` -
  `type` -

## Method Details

### getBinaryObjectInfo

protected BinaryObjectAdapter.BinaryObjectInfo getBinaryObjectInfo()

Specified by:
  `getBinaryObjectInfo` in class `BinaryObjectAdapter`

### getContents

public InputStream getContents() throws IOException

Specified by:
  `getContents` in interface `IBinaryParser.IBinaryFile`
Overrides:
  `getContents` in class `BinaryFile`
Returns:
  the binary contents.
Throws:
  `IOException`
See Also:
  - `IBinaryParser.IBinaryFile.getContents()`

### getMachOHelper

protected MachOHelper64 getMachOHelper() throws IOException

Throws:
  `IOException`

### getName

public String getName()
Description copied from interface: `IBinaryParser.IBinaryObject`
The name of the object

Specified by:
  `getName` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getName` in class `BinaryObjectAdapter`
Returns:
  String
See Also:
  - `IBinaryParser.IBinaryObject.getName()`

### getAddressFactory

public IAddressFactory getAddressFactory()

Specified by:
  `getAddressFactory` in interface `IBinaryParser.IBinaryObject`
Specified by:
  `getAddressFactory` in class `BinaryObjectAdapter`

### clearCachedValues

protected void clearCachedValues()

### internalGetAttributes

protected MachO64.Attribute internalGetAttributes()

### internalGetSizes

protected MachOHelper64.Sizes internalGetSizes()

### internalGetSymbols

protected IBinaryParser.ISymbol[] internalGetSymbols()

### internalGetSoName

protected String internalGetSoName()

### internalGetNeeded

protected String[] internalGetNeeded()

### loadBinaryInfo

protected void loadBinaryInfo()

### loadSymbols

protected IBinaryParser.ISymbol[] loadSymbols(MachOHelper64 helper) throws IOException

Throws:
  `IOException`

### getCPPFilt

protected CPPFilt getCPPFilt()

### getCPU

public String getCPU()
Description copied from interface: `IBinaryParser.IBinaryObject`
CPU name

Specified by:
  `getCPU` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getCPU` in class `BinaryObjectAdapter`
Returns:
  String - cpu name
See Also:
  - `IBinaryParser.IBinaryObject.getCPU()`

### hasDebug

public boolean hasDebug()
Description copied from interface: `IBinaryParser.IBinaryObject`
True if the binary contains debug information

Specified by:
  `hasDebug` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `hasDebug` in class `BinaryObjectAdapter`
Returns:
  true if debug information
See Also:
  - `IBinaryParser.IBinaryObject.hasDebug()`

### isLittleEndian

public boolean isLittleEndian()
Description copied from interface: `IBinaryParser.IBinaryObject`
The endian

Specified by:
  `isLittleEndian` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `isLittleEndian` in class `BinaryObjectAdapter`
Returns:
  boolean - true for little endian
See Also:
  - `IBinaryParser.IBinaryObject.isLittleEndian()`

### getBSS

public long getBSS()

Specified by:
  `getBSS` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getBSS` in class `BinaryObjectAdapter`
See Also:
  - `IBinaryParser.IBinaryObject.getBSS()`

### getData

public long getData()

Specified by:
  `getData` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getData` in class `BinaryObjectAdapter`
See Also:
  - `IBinaryParser.IBinaryObject.getData()`

### getText

public long getText()

Specified by:
  `getText` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getText` in class `BinaryObjectAdapter`
See Also:
  - `IBinaryParser.IBinaryObject.getText()`

### getSymbols

public IBinaryParser.ISymbol[] getSymbols()
Description copied from interface: `IBinaryParser.IBinaryObject`
Symbols of the object

Specified by:
  `getSymbols` in interface `IBinaryParser.IBinaryObject`
Specified by:
  `getSymbols` in class `BinaryObjectAdapter`
Returns:
  ISymbol[] arrays of symbols
See Also:
  - `IBinaryParser.IBinaryObject.getSymbols()`

### getSymbol

public IBinaryParser.ISymbol getSymbol(IAddress addr)
Description copied from interface: `IBinaryParser.IBinaryObject`
Symbo at this address.

Specified by:
  `getSymbol` in interface `IBinaryParser.IBinaryObject`
Overrides:
  `getSymbol` in class `BinaryObjectAdapter`
Returns:
  ISymbol

### getNeededSharedLibs

public String[] getNeededSharedLibs()

Overrides:
  `getNeededSharedLibs` in class `BinaryObjectAdapter`
See Also:
  - `IBinaryParser.IBinaryExecutable.getNeededSharedLibs()`

### getSoName

public String getSoName()

Overrides:
  `getSoName` in class `BinaryObjectAdapter`
See Also:
  - `IBinaryParser.IBinaryShared.getSoName()`

### hasChanged

protected boolean hasChanged()

Overrides:
  `hasChanged` in class `BinaryFile`

### getAdapter

public <T> T getAdapter(Class<T> adapter)

Specified by:
  `getAdapter` in interface `org.eclipse.core.runtime.IAdaptable`
Overrides:
  `getAdapter` in class `org.eclipse.core.runtime.PlatformObject`