本文整理汇总了Java中org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket.setNextValueAsMethodID方法的典型用法代码示例。如果您正苦于以下问题:Java CommandPacket.setNextValueAsMethodID方法的具体用法?Java CommandPacket.setNextValueAsMethodID怎么用?Java CommandPacket.setNextValueAsMethodID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket
的用法示例。
在下文中一共展示了CommandPacket.setNextValueAsMethodID方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getLineTable
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* Returns line number information for the method, if present.
*
* @param refType
* The class ID
* @param methodID
* The method ID
* @return ReplyPacket for corresponding command.
*/
public final ReplyPacket getLineTable(long refType, long methodID) {
CommandPacket command = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
command.setNextValueAsReferenceTypeID(refType);
command.setNextValueAsMethodID(methodID);
// ReplyPacket reply =
// debuggeeWrapper.vmMirror.checkReply(debuggeeWrapper.vmMirror.performCommand(command));
// it is impossible to obtain line table information from native
// methods, so reply checking is not performed
ReplyPacket reply = performCommand(command);
if (reply.getErrorCode() != JDWPConstants.Error.NONE) {
if (reply.getErrorCode() == JDWPConstants.Error.NATIVE_METHOD) {
return reply;
}
}
return checkReply(reply);
}
示例2: invokeInstanceMethod
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* Invokes a member method of the given object.
*
* @param objectID
* The object ID.
* @param threadID
* The thread ID.
* @param methodName
* The name of method for the invocation.
* @param args
* The arguments for the invocation.
* @param options
* The invocation options.
* @return ReplyPacket for corresponding command
*/
public final ReplyPacket invokeInstanceMethod(long objectID, long threadID,
String methodName, Value[] args, int options) {
long classID = getReferenceType(objectID);
long methodID = getMethodID(classID, methodName);
CommandPacket command = new CommandPacket(
JDWPCommands.ObjectReferenceCommandSet.CommandSetID,
JDWPCommands.ObjectReferenceCommandSet.InvokeMethodCommand);
command.setNextValueAsObjectID(objectID);
command.setNextValueAsThreadID(threadID);
command.setNextValueAsClassID(classID);
command.setNextValueAsMethodID(methodID);
command.setNextValueAsInt(args.length);
for (int i = 0; i < args.length; i++) {
command.setNextValueAsValue(args[i]);
}
command.setNextValueAsInt(options);
return checkReply(performCommand(command));
}
示例3: invokeStaticMethod
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* Invokes a static method of the given class.
*
* @param classID
* The class type ID.
* @param threadID
* The thread ID.
* @param methodName
* The name of method for the invocation.
* @param args
* The arguments for the invocation.
* @param options
* The invocation options.
* @return ReplyPacket for corresponding command
*/
public final ReplyPacket invokeStaticMethod(long classID, long threadID,
String methodName, Value[] args, int options) {
long methodID = getMethodID(classID, methodName);
CommandPacket command = new CommandPacket(
JDWPCommands.ClassTypeCommandSet.CommandSetID,
JDWPCommands.ClassTypeCommandSet.InvokeMethodCommand);
command.setNextValueAsClassID(classID);
command.setNextValueAsThreadID(threadID);
command.setNextValueAsMethodID(methodID);
command.setNextValueAsInt(args.length);
for (int i = 0; i < args.length; i++) {
command.setNextValueAsValue(args[i]);
}
command.setNextValueAsInt(options);
return checkReply(performCommand(command));
}
示例4: jdwpGetVariableTable
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
protected VarInfo[] jdwpGetVariableTable(long classID, long methodID) {
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.VariableTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
checkReplyPacket(reply, "Method::VariableTable command");
reply.getNextValueAsInt();
int varNumber = reply.getNextValueAsInt();
VarInfo[] varInfos = new VarInfo[varNumber];
for (int i = 0; i < varNumber; i++) {
reply.getNextValueAsLong();
String name = reply.getNextValueAsString();
String sign = reply.getNextValueAsString();
reply.getNextValueAsInt();
int slot = reply.getNextValueAsInt();
varInfos[i] = new VarInfo(name, slot, sign);
}
return varInfos;
}
示例5: getMethodStartCodeIndex
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
long getMethodStartCodeIndex(long classID, String methodName) {
long methodID = debuggeeWrapper.vmMirror.getMethodID(classID, methodName);
if ( methodID == -1 ) {
logWriter.println
("## getMethodStartCodeIndex(): Can NOT get methodID for classID = "
+ classID + "; Method name = " + methodName);
return -1;
}
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
if ( ! checkReplyPacketWithoutFail
(lineTableReply, "getMethodStartCodeIndex(): Method.LineTable command") ) {
return -1;
}
long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
return methodStartCodeIndex;
}
示例6: getMethodEndCodeIndex
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
@SuppressWarnings("unused")
long getMethodEndCodeIndex(long classID, String methodName) {
long methodID = debuggeeWrapper.vmMirror.getMethodID(classID, methodName);
if ( methodID == -1 ) {
logWriter.println
("## getMethodEndCodeIndex(): Can NOT get methodID for classID = "
+ classID + "; Method name = " + methodName);
return -1;
}
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
if ( ! checkReplyPacketWithoutFail
(lineTableReply, "getMethodEndCodeIndex(): Method.LineTable command") ) {
return -1;
}
long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
long methodEndCodeIndex = lineTableReply.getNextValueAsLong();
return methodEndCodeIndex;
}
示例7: getVariableTable
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* Returns variable information for the method
*
* @param classID
* The class ID
* @param methodID
* The method ID
* @return A list containing all variables (arguments and locals) declared
* within the method.
*/
public final List getVariableTable(long classID, long methodID) {
CommandPacket command = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.VariableTableCommand);
command.setNextValueAsReferenceTypeID(classID);
command.setNextValueAsMethodID(methodID);
// ReplyPacket reply =
// debuggeeWrapper.vmMirror.checkReply(debuggeeWrapper.vmMirror.performCommand(command));
ReplyPacket reply = performCommand(command);
if (reply.getErrorCode() == JDWPConstants.Error.ABSENT_INFORMATION
|| reply.getErrorCode() == JDWPConstants.Error.NATIVE_METHOD) {
return null;
}
checkReply(reply);
reply.getNextValueAsInt(); // argCnt, is not used
int slots = reply.getNextValueAsInt();
if (slots == 0) {
return null;
}
ArrayList<Variable> vars = new ArrayList<Variable>(slots);
for (int i = 0; i < slots; i++) {
Variable var = new Frame().new Variable();
var.setCodeIndex(reply.getNextValueAsLong());
var.setName(reply.getNextValueAsString());
var.setSignature(reply.getNextValueAsString());
var.setLength(reply.getNextValueAsInt());
var.setSlot(reply.getNextValueAsInt());
vars.add(var);
}
return vars;
}
示例8: testIsObsoleteTest001
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* This testcase exercises Method.IsObsolete command.
* <BR>It runs MethodDebuggee, receives checked method,
* which is not obsolete, and checks it with Method.IsObsolete command.
*/
public void testIsObsoleteTest001() throws UnsupportedEncodingException {
logWriter.println("testObsoleteTest001 started");
//check capability, relevant for this test
logWriter.println("=> Check, can VM redefine classes");
debuggeeWrapper.vmMirror.capabilities();
boolean isCapability = debuggeeWrapper.vmMirror.targetVMCapabilities.canRedefineClasses;
if (!isCapability) {
logWriter.println("##WARNING: this VM can't redefine classes");
return;
}
synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
long classID = getClassIDBySignature("L"+getDebuggeeClassName().replace('.', '/')+";");
MethodInfo[] methodsInfo = jdwpGetMethodsInfo(classID);
assertFalse("Invalid number of methods", methodsInfo.length == 0);
for (int i = 0; i < methodsInfo.length; i++) {
logWriter.println(methodsInfo[i].toString());
// get variable table for this class
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.IsObsoleteCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodsInfo[i].getMethodID());
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
checkReplyPacket(reply, "Method::IsObsolete command");
boolean isObsolete = reply.getNextValueAsBoolean();
logWriter.println("isObsolete=" + isObsolete);
}
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
}
示例9: getLineTable
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* Issues LineTable command.
*
* @param classID -
* class ID
* @param methodID -
* method ID
* @return reply packet
*/
protected ReplyPacket getLineTable(long classID, long methodID) {
CommandPacket lineTableCommand = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
lineTableCommand.setNextValueAsReferenceTypeID(classID);
lineTableCommand.setNextValueAsMethodID(methodID);
ReplyPacket lineTableReply = debuggeeWrapper.vmMirror
.performCommand(lineTableCommand);
checkReplyPacket(lineTableReply, "Method::LineTable command");
return lineTableReply;
}
示例10: printMethodLineTable
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
void printMethodLineTable(long classID, String className /* may be null */, String methodName) {
long methodID = debuggeeWrapper.vmMirror.getMethodID(classID, methodName);
if ( methodID == -1 ) {
logWriter.println
("## printMethodLineTable(): Can NOT get methodID for classID = "
+ classID + "; Method name = " + methodName);
return;
}
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
if ( ! checkReplyPacketWithoutFail(lineTableReply, "printMethodLineTable(): Method.LineTable command") ) {
return;
}
if ( className == null ) {
logWriter.println("=== Line Table for method: " + methodName + " ===");
} else {
logWriter.println("=== Line Table for method: " + methodName + " of class: "
+ className + " ===");
}
long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
logWriter.println("==> Method Start Code Index = " + methodStartCodeIndex);
long methodEndCodeIndex = lineTableReply.getNextValueAsLong();
logWriter.println("==> Method End Code Index = " + methodEndCodeIndex);
int linesNumber = lineTableReply.getNextValueAsInt();
logWriter.println("==> Number of lines = " + linesNumber);
for (int i=0; i < linesNumber; i++) {
long lineCodeIndex = lineTableReply.getNextValueAsLong();
int lineNumber = lineTableReply.getNextValueAsInt();
logWriter.println("====> Line Number " + lineNumber + " : Initial code index = " + lineCodeIndex);
}
logWriter.println("=== End of Line Table " + methodName + " ===");
}
示例11: getMethodEntryLocation
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
protected Location getMethodEntryLocation(long classID, String methodName) {
long methodID = debuggeeWrapper.vmMirror.getMethodID(classID, methodName);
if ( methodID == -1 ) {
logWriter.println
("## getClassMethodEntryLocation(): Can NOT get methodID for classID = "
+ classID + "; Method name = " + methodName);
return null;
}
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
if ( ! checkReplyPacketWithoutFail
(reply, "getMethodEntryLocation(): Method.LineTable command") ) {
return null;
}
long methodStartCodeIndex = reply.getNextValueAsLong();
Location location = new Location();
location.tag = JDWPConstants.TypeTag.CLASS;
location.classID = classID;
location.methodID = methodID;
location.index = methodStartCodeIndex;
return location;
}
示例12: getMethodEndLocation
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
@SuppressWarnings("unused")
protected Location getMethodEndLocation(long classID, String methodName) {
long methodID = debuggeeWrapper.vmMirror.getMethodID(classID, methodName);
if ( methodID == -1 ) {
logWriter.println
("## getClassMethodEndLocation(): Can NOT get methodID for classID = "
+ classID + "; Method name = " + methodName);
return null;
}
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.LineTableCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodID);
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
if ( ! checkReplyPacketWithoutFail
(reply, "getMethodEndLocation(): Method.LineTable command") ) {
return null;
}
long methodStartCodeIndex = reply.getNextValueAsLong();
long methodEndCodeIndex = reply.getNextValueAsLong();
Location location = new Location();
location.tag = JDWPConstants.TypeTag.CLASS;
location.classID = classID;
location.methodID = methodID;
location.index = methodEndCodeIndex;
return location;
}
示例13: testBytecodesTest001
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
/**
* This testcase exercises Method.Bytecodes command.
* <BR>It runs MethodDebuggee. Gets methods with ReferenceType.Methods command,
* prints it's bytecodes received with Method.Bytecodes command.
*/
public void testBytecodesTest001() throws UnsupportedEncodingException {
logWriter.println("testBytecodesTest001 started");
//check capability, relevant for this test
logWriter.println("=> Check capability: canGetBytecodes");
debuggeeWrapper.vmMirror.capabilities();
boolean isCapability = debuggeeWrapper.vmMirror.targetVMCapabilities.canGetBytecodes;
if (!isCapability) {
logWriter.println("##WARNING: this VM doesn't possess capability: canGetBytecodes");
return;
}
synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
long classID = getClassIDBySignature("L"+getDebuggeeClassName().replace('.', '/')+";");
MethodInfo[] methodsInfo = jdwpGetMethodsInfo(classID);
assertFalse("Invalid number of methods", methodsInfo.length == 0);
for (int i = 0; i < methodsInfo.length; i++) {
logWriter.println(methodsInfo[i].toString());
// get variable table for this class
CommandPacket packet = new CommandPacket(
JDWPCommands.MethodCommandSet.CommandSetID,
JDWPCommands.MethodCommandSet.BytecodesCommand);
packet.setNextValueAsClassID(classID);
packet.setNextValueAsMethodID(methodsInfo[i].getMethodID());
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
checkReplyPacket(reply, "Method::Bytecodes command");
int bytes = reply.getNextValueAsInt();
logWriter.println("bytes = " + bytes);
byte[] bytecode = new byte[bytes];
for (int j = 0; j < bytes; j++) {
bytecode[j] = reply.getNextValueAsByte();
}
logWriter.println("Bytecode=" + new String(bytecode));
}
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
}
示例14: makeNewInstance
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类
protected TaggedObject makeNewInstance(long typeID, long threadID,
long constructorID, int testNumber) {
CommandPacket packet = new CommandPacket(
JDWPCommands.ClassTypeCommandSet.CommandSetID,
JDWPCommands.ClassTypeCommandSet.NewInstanceCommand);
packet.setNextValueAsClassID(typeID);
packet.setNextValueAsThreadID(threadID);
packet.setNextValueAsMethodID(constructorID);
if ( testNumber == 1 ) {
packet.setNextValueAsInt(1); // number of parameters
packet.setNextValueAsValue(new Value(false));
}
if ( testNumber == 2 ) {
packet.setNextValueAsInt(0); // number of parameters
}
packet.setNextValueAsInt(0);
logWriter.println("\nSend ClassType.NewInstance");
ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
checkReplyPacket(reply, "ClassType::NewInstance command");
TaggedObject newObject = reply.getNextValueAsTaggedObject();
logWriter.println(" ClassType.NewInstance: newObject.tag="
+ newObject.tag + " newObject.objectID=" + newObject.objectID);
TaggedObject exception = reply.getNextValueAsTaggedObject();
logWriter.println(" ClassType.NewInstance: exception.tag="
+ exception.tag + " exception.objectID=" + exception.objectID);
assertTrue("newObject must be != null", newObject != null);
assertTrue("newObject.objectID must be != 0", newObject.objectID != 0);
assertEquals("Invalid object tag,", JDWPConstants.Tag.OBJECT_TAG, newObject.tag
, JDWPConstants.Tag.getName(JDWPConstants.Tag.OBJECT_TAG)
, JDWPConstants.Tag.getName(newObject.tag));
assertTrue("exception must be != null", exception != null);
assertTrue("exception.objectID must be == 0", exception.objectID == 0);
assertEquals("Invalid exception.tag,", JDWPConstants.Tag.OBJECT_TAG, exception.tag
, JDWPConstants.Tag.getName(JDWPConstants.Tag.OBJECT_TAG)
, JDWPConstants.Tag.getName(exception.tag));
assertAllDataRead(reply);
return newObject;
}