/***************************************************************** * Copyright (c) 2014 Renesas Electronics and others * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * William Riley (Renesas) - Bug 357270 *****************************************************************/ package org.eclipse.cdt.dsf.debug.service; import java.math.BigInteger; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; /** * This interface extends the disassembly service with support for raw opcodes * * @since 2.5 * */ public interface IDisassembly3 extends IDisassembly2 { /** * Gets a block of disassembled code given an address range. * * @param context * Context of the disassembly code * @param startAddress * Beginning address, inclusive. If null, disassemble from the * instruction pointer. * @param endAddress * End address, exclusive. If null, implementation should attempt * to disassemble some reasonable, default number of * instructions. That default is implementation specific. * @param opCodes * If raw opcodes should be retrieved * @param drm * Disassembled code */ public void getInstructions(IDisassemblyDMContext context, BigInteger startAddress, BigInteger endAddress, boolean opCodes, DataRequestMonitor<IInstruction[]> drm); /** * Gets a block of disassembled code given a filename, line number, and line * count. * * @param context * Context of the disassembly code * @param filename * File to disassemble * @param linenum * Starting point. 1-based line number within the file. If the * line does not represent compiled code, disassembly will start * at the first subsequent line that does. * @param instructionCount * Number of instructions to disassemble. -1 means all available * instructions (starting at [linenum]) * @param opCodes * If raw opcodes should be retrieved * * @param drm * Disassembled code */ public void getInstructions(IDisassemblyDMContext context, String filename, int linenum, int instructionCount, boolean opCodes, DataRequestMonitor<IInstruction[]> drm); /** * Gets a block of mixed disassembled code given an address range. * * @param context * Context of the disassembly code * @param startAddress * Beginning address, inclusive. If null, disassemble from the * instruction pointer. * @param endAddress * End address, exclusive. * @param opCodes * If opcodes should be retrieved * @param drm * Disassembled code */ public void getMixedInstructions(IDisassemblyDMContext context, BigInteger startAddress, BigInteger endAddress, boolean opCodes, DataRequestMonitor<IMixedInstruction[]> drm); /** * Gets a block of mixed disassembled code given a filename, line number, * and line count. * * @param context * Context of the disassembly code * @param filename * File to disassemble * @param linenum * Starting point. 1-based line number within the file. If the * line does not represent compiled code, disassembly will start * at the first subsequent line that does. * @param instructionCount * Number of instructions to disassemble. -1 means all available * instructions (starting at [linenum]) * @param opCodes * If opcodes should be retrieved * @param drm * Disassembled code */ public void getMixedInstructions(IDisassemblyDMContext context, String filename, int linenum, int instructionCount, boolean opCodes, DataRequestMonitor<IMixedInstruction[]> drm); }