public class RemoteDebuggerClient extends DebuggerBase implements JVMDebugger
heapOopSize, javaPrimitiveTypesConfigured, jbooleanSize, jbyteSize, jcharSize, jdoubleSize, jfloatSize, jintSize, jlongSize, jshortSize, klassPtrSize, machDesc, narrowKlassBase, narrowKlassShift, narrowOopBase, narrowOopShift, oopSize, utils
Constructor and Description |
---|
RemoteDebuggerClient(RemoteDebugger remoteDebugger) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
addressValueToString(long addr) |
void |
attach(int processID)
Unimplemented in this class (remote remoteDebugger should already be attached)
|
void |
attach(java.lang.String executableName,
java.lang.String coreFileName)
Unimplemented in this class (remote remoteDebugger should already be attached)
|
void |
configureJavaPrimitiveTypeSizes(long jbooleanSize,
long jbyteSize,
long jcharSize,
long jdoubleSize,
long jfloatSize,
long jintSize,
long jlongSize,
long jshortSize)
Unimplemented in this class (remote remoteDebugger should already be configured)
|
java.lang.String |
consoleExecuteCommand(java.lang.String cmd)
If the underlying debugger has a console (as dbx does), this
provides access to it.
|
boolean |
detach()
Unimplemented in this class (remote remoteDebugger can not be detached)
|
long |
getAddressValue(Address addr)
Returns the 64-bit value of an Address.
|
CDebugger |
getCDebugger()
If this platform supports C/C++ debugging via the CDebugger
interface, returns a CDebugger object; otherwise returns
null.
|
java.lang.String |
getConsolePrompt()
If the underlying debugger has a console, this returns the
debugger-specific prompt which should be displayed.
|
java.lang.String |
getCPU()
Support for remote debugging.
|
MachineDescription |
getMachineDescription()
Retrieve the machine description for the underlying hardware for
the cases in which we need to do, for example, machine-dependent
byte swapping
|
java.lang.String |
getOS()
Support for remote debugging.
|
java.util.List |
getProcessList()
Unimplemented in this class (remote remoteDebugger should already be attached)
|
int |
getRemoteProcessAddressSize() |
ThreadProxy |
getThreadForIdentifierAddress(Address addr)
Gets an abstract ThreadProxy object for the thread identified by
the contents of the memory location pointed to by addr.
|
ThreadProxy |
getThreadForThreadId(long id)
Gets an abstract ThreadProxy object for the thread identified by
id or handle that is platform dependent
|
long[] |
getThreadIntegerRegisterSet(Address addr) |
long[] |
getThreadIntegerRegisterSet(long id) |
boolean |
hasConsole()
Find out whether this debugger has a console available on which
commands can be executed; see executeCommandOnConsole, below.
|
boolean |
hasProcessList()
Unimplemented in this class (remote remoteDebugger should already be attached)
|
Address |
lookup(java.lang.String objectName,
java.lang.String symbol)
Looks up the given symbol in the context of the given object.
|
OopHandle |
lookupOop(java.lang.String objectName,
java.lang.String symbol)
Looks up the given symbol in the context of the given object,
assuming that symbol refers to a Java object.
|
Address |
newAddress(long value) |
Address |
parseAddress(java.lang.String addressString)
Parse an address from a hex string in the format "0xFFFFFFFF".
|
ReadResult |
readBytesFromProcess(long address,
long numBytes)
This reads bytes from the remote process.
|
long |
readCInteger(long address,
long numBytes,
boolean isUnsigned)
Need to override this to relax alignment checks on x86.
|
long |
readJLong(long address) |
void |
setMachineDescription(MachineDescription machDesc) |
void |
writeBytesToProcess(long a,
long b,
byte[] c) |
checkConfigured, checkJavaConfigured, clearCache, disableCache, enableCache, getHeapOopSize, getJBooleanSize, getJByteSize, getJCharSize, getJDoubleSize, getJFloatSize, getJIntSize, getJLongSize, getJShortSize, getKlassPtrSize, getNarrowKlassBase, getNarrowKlassShift, getNarrowOopBase, getNarrowOopShift, initCache, invalidatePageCache, parseCacheNumPagesProperty, putHeapConst, readAddressValue, readBytes, readCompKlassAddressValue, readCompOopAddressValue, readJBoolean, readJByte, readJChar, readJDouble, readJFloat, readJInt, readJShort, setBigEndian, writeAddressValue, writeBytes, writeCInteger, writeJBoolean, writeJByte, writeJChar, writeJDouble, writeJFloat, writeJInt, writeJLong, writeJShort
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
putHeapConst
getHeapOopSize, getJBooleanSize, getJByteSize, getJCharSize, getJDoubleSize, getJFloatSize, getJIntSize, getJLongSize, getJShortSize, getKlassPtrSize, getNarrowKlassBase, getNarrowKlassShift, getNarrowOopBase, getNarrowOopShift
public RemoteDebuggerClient(RemoteDebugger remoteDebugger) throws DebuggerException
DebuggerException
public long[] getThreadIntegerRegisterSet(Address addr)
public long[] getThreadIntegerRegisterSet(long id)
public boolean hasProcessList() throws DebuggerException
hasProcessList
in interface Debugger
DebuggerException
public java.util.List getProcessList() throws DebuggerException
getProcessList
in interface Debugger
DebuggerException
public void attach(int processID) throws DebuggerException
attach
in interface Debugger
DebuggerException
public void attach(java.lang.String executableName, java.lang.String coreFileName) throws DebuggerException
attach
in interface Debugger
DebuggerException
public boolean detach()
public Address parseAddress(java.lang.String addressString) throws java.lang.NumberFormatException
Debugger
parseAddress
in interface Debugger
java.lang.NumberFormatException
public java.lang.String getOS() throws DebuggerException
Debugger
getOS
in interface Debugger
DebuggerException
public java.lang.String getCPU()
Debugger
public boolean hasConsole() throws DebuggerException
Debugger
hasConsole
in interface Debugger
DebuggerException
public java.lang.String consoleExecuteCommand(java.lang.String cmd) throws DebuggerException
Debugger
consoleExecuteCommand
in interface Debugger
DebuggerException
public java.lang.String getConsolePrompt() throws DebuggerException
Debugger
getConsolePrompt
in interface Debugger
DebuggerException
public CDebugger getCDebugger() throws DebuggerException
Debugger
getCDebugger
in interface Debugger
DebuggerException
public Address lookup(java.lang.String objectName, java.lang.String symbol)
SymbolLookup
FIXME: we may want to hide the objectName so the user does not have to specify it, but it isn't clear whether this will work transparently with dbx.
FIXME: what happens if the address is not found? Throw exception? Currently returns null.
lookup
in interface SymbolLookup
public OopHandle lookupOop(java.lang.String objectName, java.lang.String symbol)
SymbolLookup
FIXME: we may want to hide the objectName so the user does not have to specify it, but it isn't clear whether this will work transparently with dbx.
FIXME: what happens if the address is not found? Throw exception? Currently returns null.
lookupOop
in interface SymbolLookup
public long readCInteger(long address, long numBytes, boolean isUnsigned) throws UnmappedAddressException, UnalignedAddressException
readCInteger
in class DebuggerBase
UnmappedAddressException
UnalignedAddressException
public long readJLong(long address) throws UnmappedAddressException, UnalignedAddressException
readJLong
in class DebuggerBase
UnmappedAddressException
UnalignedAddressException
public void configureJavaPrimitiveTypeSizes(long jbooleanSize, long jbyteSize, long jcharSize, long jdoubleSize, long jfloatSize, long jintSize, long jlongSize, long jshortSize)
configureJavaPrimitiveTypeSizes
in interface JVMDebugger
configureJavaPrimitiveTypeSizes
in class DebuggerBase
public void setMachineDescription(MachineDescription machDesc)
public int getRemoteProcessAddressSize()
public java.lang.String addressValueToString(long addr)
public long getAddressValue(Address addr) throws DebuggerException
Debugger
getAddressValue
in interface Debugger
DebuggerException
public Address newAddress(long value)
public ThreadProxy getThreadForIdentifierAddress(Address addr)
ThreadAccess
getThreadForIdentifierAddress
in interface ThreadAccess
public ThreadProxy getThreadForThreadId(long id)
ThreadAccess
getThreadForThreadId
in interface ThreadAccess
public MachineDescription getMachineDescription() throws DebuggerException
Debugger
getMachineDescription
in interface Debugger
DebuggerException
public ReadResult readBytesFromProcess(long address, long numBytes)
readBytesFromProcess
in interface Debugger
public void writeBytesToProcess(long a, long b, byte[] c)
writeBytesToProcess
in interface Debugger
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.