public abstract class DSO extends java.lang.Object implements LoadObject
Constructor and Description |
---|
DSO(long size,
Address relocation) |
DSO(java.lang.String filename,
long size,
Address relocation) |
Modifier and Type | Method and Description |
---|---|
ClosestSymbol |
closestSymbolToPC(Address pcAsAddr)
Fetch the name of the closest exported symbol and the distance
of the PC to that symbol.
|
protected ClosestSymbol |
createClosestSymbol(java.lang.String name,
long diff) |
BlockSym |
debugInfoForPC(Address pc)
Get debug information for the given program counter.
|
boolean |
equals(java.lang.Object o) |
protected abstract long |
getAddressValue(Address addr) |
Address |
getBase()
Base address at which this loadobject was relocated at run-time
|
CDebugInfoDataBase |
getDebugInfoDataBase()
Returns a debug info database for this loadobject if debug info
is present; otherwise, returns null.
|
protected ELFFile |
getFile() |
java.lang.String |
getName()
Full path name of this loadobject
|
long |
getSize()
Size of the loadobject in bytes (determines the range of program
counters and data contained within this loadobject)
|
int |
hashCode() |
boolean |
isDSO()
return true if file is a .so
|
LineNumberInfo |
lineNumberForPC(Address pc)
Returns line number information for the given PC, including
source file name (not specified whether this is an absolute or
relative path) and start and end PCs for this line.
|
Address |
lookupSymbol(java.lang.String symbol)
Look up a symbol; returns absolute address or null if symbol was
not found.
|
protected abstract Address |
newAddress(long addr) |
void |
setBase(Address newBase)
if this .so is unloaded and re-loaded in the same process at a different
base, change the base by calling this to avoid re-parsing the ELF.
|
public DSO(java.lang.String filename, long size, Address relocation) throws ELFException
ELFException
public DSO(long size, Address relocation) throws ELFException
ELFException
public java.lang.String getName()
LoadObject
getName
in interface LoadObject
public Address getBase()
LoadObject
getBase
in interface LoadObject
public void setBase(Address newBase)
public long getSize()
LoadObject
getSize
in interface LoadObject
public CDebugInfoDataBase getDebugInfoDataBase() throws DebuggerException
LoadObject
getDebugInfoDataBase
in interface LoadObject
DebuggerException
public BlockSym debugInfoForPC(Address pc) throws DebuggerException
LoadObject
debugInfoForPC
in interface LoadObject
DebuggerException
public ClosestSymbol closestSymbolToPC(Address pcAsAddr) throws DebuggerException
LoadObject
closestSymbolToPC
in interface LoadObject
DebuggerException
public LineNumberInfo lineNumberForPC(Address pc) throws DebuggerException
LoadObject
lineNumberForPC
in interface LoadObject
DebuggerException
public boolean isDSO()
public Address lookupSymbol(java.lang.String symbol) throws ELFException
ELFException
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
protected ELFFile getFile()
protected abstract Address newAddress(long addr)
protected abstract long getAddressValue(Address addr)
protected ClosestSymbol createClosestSymbol(java.lang.String name, long diff)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.