org.virtualbox_4_3
Class IMachineDebugger

java.lang.Object
  extended by org.virtualbox_4_3.IUnknown
      extended by org.virtualbox_4_3.IMachineDebugger

public class IMachineDebugger
extends IUnknown


Field Summary
 
Fields inherited from class org.virtualbox_4_3.IUnknown
obj, port
 
Constructor Summary
IMachineDebugger(java.lang.String wrapped, org.virtualbox_4_3.jaxws.VboxPortType port)
           
 
Method Summary
 java.lang.String detectOS()
          Tries to (re-)detect the guest OS kernel.
 void dumpGuestCore(java.lang.String filename, java.lang.String compression)
          Takes a core dump of the guest.
 java.lang.String dumpGuestStack(java.lang.Long cpuId)
          Produce a simple stack dump using the current guest state.
 void dumpHostProcessCore(java.lang.String filename, java.lang.String compression)
          Takes a core dump of the VM process on the host.
 void dumpStats(java.lang.String pattern)
          Dumps VM statistics.
 java.lang.Boolean getCSAMEnabled()
          Switch for enabling and disabling the CSAM component.
 java.lang.Boolean getExecuteAllInIEM()
          Whether to execute all the code in the instruction interpreter.
 java.lang.Boolean getHWVirtExEnabled()
          Flag indicating whether the VM is currently making use of CPU hardware virtualization extensions.
 java.lang.Boolean getHWVirtExNestedPagingEnabled()
          Flag indicating whether the VM is currently making use of the nested paging CPU hardware virtualization extension.
 java.lang.Boolean getHWVirtExUXEnabled()
          Flag indicating whether the VM is currently making use of the unrestricted execution feature of VT-x.
 java.lang.Boolean getHWVirtExVPIDEnabled()
          Flag indicating whether the VM is currently making use of the VPID VT-x extension.
 java.lang.String getLogDbgDestinations()
          The debug logger's destination settings.
 java.lang.String getLogDbgFlags()
          The debug logger flags.
 java.lang.String getLogDbgGroups()
          The debug logger's group settings.
 java.lang.Boolean getLogEnabled()
          Switch for enabling and disabling the debug logger.
 java.lang.String getLogRelDestinations()
          The relase logger's destination settings.
 java.lang.String getLogRelFlags()
          The release logger flags.
 java.lang.String getLogRelGroups()
          The release logger's group settings.
 java.lang.String getOSName()
          Query the guest OS kernel name as detected by the DBGF.
 java.lang.String getOSVersion()
          Query the guest OS kernel version string as detected by the DBGF.
 java.lang.Boolean getPAEEnabled()
          Flag indicating whether the VM is currently making use of the Physical Address Extension CPU feature.
 java.lang.Boolean getPATMEnabled()
          Switch for enabling and disabling the PATM component.
 java.lang.Boolean getRecompileSupervisor()
          Switch for forcing code recompilation for supervisor mode code.
 java.lang.Boolean getRecompileUser()
          Switch for forcing code recompilation for user mode code.
 java.lang.String getRegister(java.lang.Long cpuId, java.lang.String name)
          Gets one register.
 void getRegisters(java.lang.Long cpuId, Holder<java.util.List<java.lang.String>> names, Holder<java.util.List<java.lang.String>> values)
          Gets all the registers for the given CPU.
 java.lang.Boolean getSingleStep()
          Switch for enabling single-stepping.
 java.lang.String getStats(java.lang.String pattern, java.lang.Boolean withDescriptions)
          Get the VM statistics in a XMLish format.
 java.lang.Long getVirtualTimeRate()
          The rate at which the virtual time runs expressed as a percentage.
 java.lang.String info(java.lang.String name, java.lang.String args)
          Interfaces with the info dumpers (DBGFInfo).
 void injectNMI()
          Inject an NMI into a running VT-x/AMD-V VM.
 void modifyLogDestinations(java.lang.String settings)
          Modifies the debug or release logger destinations.
 void modifyLogFlags(java.lang.String settings)
          Modifies the debug or release logger flags.
 void modifyLogGroups(java.lang.String settings)
          Modifies the group settings of the debug or release logger.
static IMachineDebugger queryInterface(IUnknown obj)
           
 byte[] readPhysicalMemory(java.lang.Long address, java.lang.Long size)
          Reads guest physical memory, no side effects (MMIO++).
 byte[] readVirtualMemory(java.lang.Long cpuId, java.lang.Long address, java.lang.Long size)
          Reads guest virtual memory, no side effects (MMIO++).
 void resetStats(java.lang.String pattern)
          Reset VM statistics.
 void setCSAMEnabled(java.lang.Boolean value)
          Switch for enabling and disabling the CSAM component.
 void setExecuteAllInIEM(java.lang.Boolean value)
          Whether to execute all the code in the instruction interpreter.
 void setLogEnabled(java.lang.Boolean value)
          Switch for enabling and disabling the debug logger.
 void setPATMEnabled(java.lang.Boolean value)
          Switch for enabling and disabling the PATM component.
 void setRecompileSupervisor(java.lang.Boolean value)
          Switch for forcing code recompilation for supervisor mode code.
 void setRecompileUser(java.lang.Boolean value)
          Switch for forcing code recompilation for user mode code.
 void setRegister(java.lang.Long cpuId, java.lang.String name, java.lang.String value)
          Gets one register.
 void setRegisters(java.lang.Long cpuId, java.util.List<java.lang.String> names, java.util.List<java.lang.String> values)
          Sets zero or more registers atomically.
 void setSingleStep(java.lang.Boolean value)
          Switch for enabling single-stepping.
 void setVirtualTimeRate(java.lang.Long value)
          The rate at which the virtual time runs expressed as a percentage.
 void writePhysicalMemory(java.lang.Long address, java.lang.Long size, byte[] bytes)
          Writes guest physical memory, access handles (MMIO++) are ignored.
 void writeVirtualMemory(java.lang.Long cpuId, java.lang.Long address, java.lang.Long size, byte[] bytes)
          Writes guest virtual memory, access handles (MMIO++) are ignored.
 
Methods inherited from class org.virtualbox_4_3.IUnknown
getRemoteWSPort, getWrapped, releaseRemote
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IMachineDebugger

public IMachineDebugger(java.lang.String wrapped,
                        org.virtualbox_4_3.jaxws.VboxPortType port)
Method Detail

getSingleStep

public java.lang.Boolean getSingleStep()
Switch for enabling single-stepping.

Returns:
Boolean

setSingleStep

public void setSingleStep(java.lang.Boolean value)
Switch for enabling single-stepping.

Parameters:
value - Boolean

getRecompileUser

public java.lang.Boolean getRecompileUser()
Switch for forcing code recompilation for user mode code.

Returns:
Boolean

setRecompileUser

public void setRecompileUser(java.lang.Boolean value)
Switch for forcing code recompilation for user mode code.

Parameters:
value - Boolean

getRecompileSupervisor

public java.lang.Boolean getRecompileSupervisor()
Switch for forcing code recompilation for supervisor mode code.

Returns:
Boolean

setRecompileSupervisor

public void setRecompileSupervisor(java.lang.Boolean value)
Switch for forcing code recompilation for supervisor mode code.

Parameters:
value - Boolean

getExecuteAllInIEM

public java.lang.Boolean getExecuteAllInIEM()
Whether to execute all the code in the instruction interpreter. This is mainly for testing the interpreter and not an execution mode intended for general consumption.

Returns:
Boolean

setExecuteAllInIEM

public void setExecuteAllInIEM(java.lang.Boolean value)
Whether to execute all the code in the instruction interpreter. This is mainly for testing the interpreter and not an execution mode intended for general consumption.

Parameters:
value - Boolean

getPATMEnabled

public java.lang.Boolean getPATMEnabled()
Switch for enabling and disabling the PATM component.

Returns:
Boolean

setPATMEnabled

public void setPATMEnabled(java.lang.Boolean value)
Switch for enabling and disabling the PATM component.

Parameters:
value - Boolean

getCSAMEnabled

public java.lang.Boolean getCSAMEnabled()
Switch for enabling and disabling the CSAM component.

Returns:
Boolean

setCSAMEnabled

public void setCSAMEnabled(java.lang.Boolean value)
Switch for enabling and disabling the CSAM component.

Parameters:
value - Boolean

getLogEnabled

public java.lang.Boolean getLogEnabled()
Switch for enabling and disabling the debug logger.

Returns:
Boolean

setLogEnabled

public void setLogEnabled(java.lang.Boolean value)
Switch for enabling and disabling the debug logger.

Parameters:
value - Boolean

getLogDbgFlags

public java.lang.String getLogDbgFlags()
The debug logger flags.

Returns:
String

getLogDbgGroups

public java.lang.String getLogDbgGroups()
The debug logger's group settings.

Returns:
String

getLogDbgDestinations

public java.lang.String getLogDbgDestinations()
The debug logger's destination settings.

Returns:
String

getLogRelFlags

public java.lang.String getLogRelFlags()
The release logger flags.

Returns:
String

getLogRelGroups

public java.lang.String getLogRelGroups()
The release logger's group settings.

Returns:
String

getLogRelDestinations

public java.lang.String getLogRelDestinations()
The relase logger's destination settings.

Returns:
String

getHWVirtExEnabled

public java.lang.Boolean getHWVirtExEnabled()
Flag indicating whether the VM is currently making use of CPU hardware virtualization extensions.

Returns:
Boolean

getHWVirtExNestedPagingEnabled

public java.lang.Boolean getHWVirtExNestedPagingEnabled()
Flag indicating whether the VM is currently making use of the nested paging CPU hardware virtualization extension.

Returns:
Boolean

getHWVirtExVPIDEnabled

public java.lang.Boolean getHWVirtExVPIDEnabled()
Flag indicating whether the VM is currently making use of the VPID VT-x extension.

Returns:
Boolean

getHWVirtExUXEnabled

public java.lang.Boolean getHWVirtExUXEnabled()
Flag indicating whether the VM is currently making use of the unrestricted execution feature of VT-x.

Returns:
Boolean

getOSName

public java.lang.String getOSName()
Query the guest OS kernel name as detected by the DBGF. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Returns:
String

getOSVersion

public java.lang.String getOSVersion()
Query the guest OS kernel version string as detected by the DBGF. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Returns:
String

getPAEEnabled

public java.lang.Boolean getPAEEnabled()
Flag indicating whether the VM is currently making use of the Physical Address Extension CPU feature.

Returns:
Boolean

getVirtualTimeRate

public java.lang.Long getVirtualTimeRate()
The rate at which the virtual time runs expressed as a percentage. The accepted range is 2% to 20000%.

Returns:
Long

setVirtualTimeRate

public void setVirtualTimeRate(java.lang.Long value)
The rate at which the virtual time runs expressed as a percentage. The accepted range is 2% to 20000%.

Parameters:
value - Long

queryInterface

public static IMachineDebugger queryInterface(IUnknown obj)

dumpGuestCore

public void dumpGuestCore(java.lang.String filename,
                          java.lang.String compression)
Takes a core dump of the guest. See include/VBox/dbgfcorefmt.h for details on the file format.

Parameters:
filename - The name of the output file. The file must not exist.
compression - Reserved for future compression method indicator.

dumpHostProcessCore

public void dumpHostProcessCore(java.lang.String filename,
                                java.lang.String compression)
Takes a core dump of the VM process on the host. This feature is not implemented in the 4.0.0 release but it may show up in a dot release.

Parameters:
filename - The name of the output file. The file must not exist.
compression - Reserved for future compression method indicator.

info

public java.lang.String info(java.lang.String name,
                             java.lang.String args)
Interfaces with the info dumpers (DBGFInfo). This feature is not implemented in the 4.0.0 release but it may show up in a dot release.

Parameters:
name - The name of the info item.
args - Arguments to the info dumper.
Returns:
The into string.

injectNMI

public void injectNMI()
Inject an NMI into a running VT-x/AMD-V VM.


modifyLogGroups

public void modifyLogGroups(java.lang.String settings)
Modifies the group settings of the debug or release logger.

Parameters:
settings - The group settings string. See iprt/log.h for details. To target the release logger, prefix the string with "release:".

modifyLogFlags

public void modifyLogFlags(java.lang.String settings)
Modifies the debug or release logger flags.

Parameters:
settings - The flags settings string. See iprt/log.h for details. To target the release logger, prefix the string with "release:".

modifyLogDestinations

public void modifyLogDestinations(java.lang.String settings)
Modifies the debug or release logger destinations.

Parameters:
settings - The destination settings string. See iprt/log.h for details. To target the release logger, prefix the string with "release:".

readPhysicalMemory

public byte[] readPhysicalMemory(java.lang.Long address,
                                 java.lang.Long size)
Reads guest physical memory, no side effects (MMIO++). This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
address - The guest physical address.
size - The number of bytes to read.
Returns:
The bytes read.

writePhysicalMemory

public void writePhysicalMemory(java.lang.Long address,
                                java.lang.Long size,
                                byte[] bytes)
Writes guest physical memory, access handles (MMIO++) are ignored. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
address - The guest physical address.
size - The number of bytes to read.
bytes - The bytes to write.

readVirtualMemory

public byte[] readVirtualMemory(java.lang.Long cpuId,
                                java.lang.Long address,
                                java.lang.Long size)
Reads guest virtual memory, no side effects (MMIO++). This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
address - The guest virtual address.
size - The number of bytes to read.
Returns:
The bytes read.

writeVirtualMemory

public void writeVirtualMemory(java.lang.Long cpuId,
                               java.lang.Long address,
                               java.lang.Long size,
                               byte[] bytes)
Writes guest virtual memory, access handles (MMIO++) are ignored. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
address - The guest virtual address.
size - The number of bytes to read.
bytes - The bytes to write.

detectOS

public java.lang.String detectOS()
Tries to (re-)detect the guest OS kernel. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Returns:
The detected OS kernel on success.

getRegister

public java.lang.String getRegister(java.lang.Long cpuId,
                                    java.lang.String name)
Gets one register. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
name - The register name, case is ignored.
Returns:
The register value. This is usually a hex value (always 0x prefixed) but other format may be used for floating point registers (TBD).

getRegisters

public void getRegisters(java.lang.Long cpuId,
                         Holder<java.util.List<java.lang.String>> names,
                         Holder<java.util.List<java.lang.String>> values)
Gets all the registers for the given CPU. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
names - Array containing the lowercase register names.
values - Array parallel to the names holding the register values as if the register was returned by getRegister(Long,String).

setRegister

public void setRegister(java.lang.Long cpuId,
                        java.lang.String name,
                        java.lang.String value)
Gets one register. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
name - The register name, case is ignored.
value - The new register value. Hexadecimal, decimal and octal formattings are supported in addition to any special formattings returned by the getters.

setRegisters

public void setRegisters(java.lang.Long cpuId,
                         java.util.List<java.lang.String> names,
                         java.util.List<java.lang.String> values)
Sets zero or more registers atomically. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
names - Array containing the register names, case ignored.
values - Array paralell to the names holding the register values. See setRegister(Long,String,String)for formatting guidelines.

dumpGuestStack

public java.lang.String dumpGuestStack(java.lang.Long cpuId)
Produce a simple stack dump using the current guest state. This feature is not implemented in the 4.0.0 release but may show up in a dot release.

Parameters:
cpuId - The identifier of the Virtual CPU.
Returns:
String containing the formatted stack dump.

resetStats

public void resetStats(java.lang.String pattern)
Reset VM statistics.

Parameters:
pattern - The selection pattern. A bit similar to filename globbing.

dumpStats

public void dumpStats(java.lang.String pattern)
Dumps VM statistics.

Parameters:
pattern - The selection pattern. A bit similar to filename globbing.

getStats

public java.lang.String getStats(java.lang.String pattern,
                                 java.lang.Boolean withDescriptions)
Get the VM statistics in a XMLish format.

Parameters:
pattern - The selection pattern. A bit similar to filename globbing.
withDescriptions - Whether to include the descriptions.
Returns:
The XML document containing the statistics.