diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIDataWriteRegisterValues.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIDataWriteRegisterValues.java new file mode 100644 index 00000000000..9d6992b81be --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIDataWriteRegisterValues.java @@ -0,0 +1,67 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ + +package org.eclipse.cdt.debug.mi.core.command; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.cdt.debug.mi.core.MIFormat; + +/** + * + * Write given values into registers. The registers and values are + * given as pairs. The corresponding MI command is + * -data-write-register-values [ ... ] + * + */ +public class MIDataWriteRegisterValues extends MICommand { + + public MIDataWriteRegisterValues(int fmt, int[] regnos, String[] values) { + super("-data-write-register-values"); + + String format = "x"; + switch (fmt) { + case MIFormat.NATURAL: + format = "N"; + break; + + case MIFormat.RAW: + format = "r"; + break; + + case MIFormat.DECIMAL: + format = "d"; + break; + + case MIFormat.BINARY: + format = "t"; + break; + + case MIFormat.OCTAL: + format = "o"; + break; + + case MIFormat.HEXADECIMAL: + default: + format = "x"; + break; + } + + setOptions(new String[]{format}); + + if (regnos != null && values != null) { + List aList = new ArrayList(regnos.length); + for (int i = 0; i < regnos.length && i < values.length; i++) { + aList.add(Integer.toString(regnos[i])); + aList.add(values[i]); + } + String[] array = (String[])aList.toArray(new String[0]); + setParameters(array); + } + } + +}