asarray java_Java CommandPacket.setNextValueAsArrayID方法代码示例

import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket; //导入方法依赖的package包/类

private void checkArrayRegion(long arrayID, int error, int firstIndex, int length,

byte expectedArrayTag, byte expectedElementTag, boolean checkValues)

throws UnsupportedEncodingException {

CommandPacket packet = new CommandPacket(

JDWPCommands.ArrayReferenceCommandSet.CommandSetID,

JDWPCommands.ArrayReferenceCommandSet.GetValuesCommand);

packet.setNextValueAsArrayID(arrayID);

packet.setNextValueAsInt(firstIndex);

packet.setNextValueAsInt(length);

ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);

checkReplyPacket(reply, "ArrayReference::GetValues command", error);

if (reply.getErrorCode() == JDWPConstants.Error.NONE) {

// do not check values for non-array fields

ArrayRegion region = reply.getNextValueAsArrayRegion();

//System.err.println("length="+region.length);

byte arrayTag = region.getTag();

logWriter.println("==> arrayTag = " + arrayTag

+ "(" + JDWPConstants.Tag.getName(arrayTag) + ")");

logWriter.println("==> arrayLength = "+region.getLength());

Value value_0 = region.getValue(0);

byte elementTag = value_0.getTag();

logWriter.println("==> elementTag = " + elementTag

+ "(" + JDWPConstants.Tag.getName(elementTag) + ")");

assertEquals("ArrayReference::GetValues returned invalid array tag,",

expectedArrayTag, arrayTag,

JDWPConstants.Tag.getName(expectedArrayTag),

JDWPConstants.Tag.getName(arrayTag));

assertEquals("ArrayReference::GetValues returned invalid array length,",

length, region.getLength());

assertEquals("ArrayReference::GetValues returned invalid element tag",

expectedElementTag, elementTag,

JDWPConstants.Tag.getName(expectedElementTag),

JDWPConstants.Tag.getName(elementTag));

if (checkValues) {

for (int i = 0; i < region.getLength(); i++) {

Value value = region.getValue(i);

if (value.getTag() == JDWPConstants.Tag.INT_TAG) {

assertEquals("ArrayReference::GetValues returned invalid value on index:,",

value.getIntValue(), i + firstIndex);

}

else if (value.getTag() == JDWPConstants.Tag.STRING_TAG) {

long stringID = value.getLongValue();

String s = getStringValue(stringID);

assertEquals("ArrayReference::GetValues returned invalid value on index:,",

Integer.parseInt(s), i + firstIndex);

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值