/*******************************************************************************
* Copyright (c) 2008, 2010 Ericsson 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:
* Ericsson - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.dsf.debug.service;
import java.math.BigInteger;
import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.datamodel.IDMContext;
import org.eclipse.cdt.dsf.service.IDsfService;
/**
* Disassembly service interface
*
* @since 1.0
*/
public interface IDisassembly extends IDsfService {
public interface IDisassemblyDMContext extends IDMContext {}
/**
* 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 drm
* Disassembled code
*/
public void getInstructions(
IDisassemblyDMContext context,
BigInteger startAddress,
BigInteger endAddress,
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 drm
* Disassembled code
*/
public void getInstructions(
IDisassemblyDMContext context,
String filename,
int linenum,
int instrtuctionCount,
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 drm
* Disassembled code
*/
public void getMixedInstructions(
IDisassemblyDMContext context,
BigInteger startAddress,
BigInteger endAddress,
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 drm
* Disassembled code
*/
public void getMixedInstructions(
IDisassemblyDMContext context,
String filename,
int linenum,
int instructionCount,
DataRequestMonitor<IMixedInstruction[]> drm);
}