blob: 17ce1abbe9ba5e6b97042bf38ad596255800db8f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 The Regents of the University of California.
* This material was produced under U.S. Government contract W-7405-ENG-36
* for Los Alamos National Laboratory, which is operated by the University
* of California for the U.S. Department of Energy. The U.S. Government has
* rights to use, reproduce, and distribute this software. NEITHER THE
* GOVERNMENT NOR THE UNIVERSITY MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
* ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified
* to produce derivative works, such modified software should be clearly marked,
* so as not to confuse it with the version available from LANL.
*
* Additionally, 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
*
* LA-CC 04-115
*******************************************************************************/
package org.eclipse.ptp.debug.core.model;
import java.math.BigInteger;
import org.eclipse.core.runtime.IPath;
import org.eclipse.debug.core.DebugException;
/**
* @author clement
*
*/
public interface IPModule extends IPDebugElement {
/**
* Type constant which identifies executables.
*/
public static final int EXECUTABLE = 1;
/**
* Type constant which identifies shared libraries.
*/
public static final int SHARED_LIBRARY = 2;
/**
* Returns the type of this module. The returned value will be one of
*
* @return the type of this module
*/
public int getType();
/**
* Returns the name of this module.
*
* @return the name of this module
*/
public String getName();
/**
* Returns the image name of this module. The name may or may not contain a
* full path.
*
* @return the image name of this module
*/
public IPath getImageName();
/**
* Returns the full path of the file from which symbols to be loaded.
*
* @return the full path of the file from which symbols to be loaded
*/
public IPath getSymbolsFileName();
/**
* Associate the specified file as a symbol provider for this module. If
* <code>null</code> is passed as a file name the internal symbols search
* mechanism will be used.
*
* @param symbolsFile
* the symbol provider for this module.
* @throws DebugException
* if this method fails. Reasons include:
*/
public void setSymbolsFileName(IPath symbolsFile) throws DebugException;
/**
* Returns the base address of this module.
*
* @return the base address of this module
*/
public BigInteger getBaseAddress();
/**
* Returns the size of this module.
*
* @return the size of this module
*/
public long getSize();
/**
* Returns whether the symbols of this module are read.
*
* @return whether the symbols of this module are read
*/
public boolean areSymbolsLoaded();
/**
* Returns whether the module's symbols can be loaded or reloaded.
*
* @return whether the module's symbols can be loaded or reloaded
*/
public boolean canLoadSymbols();
/**
* Loads the module symbols from the specified file.
*
* @throws DebugException if this method fails. Reasons include:
*/
public void loadSymbols() throws DebugException;
/**
* Returns the name of the platform.
*
* @return the name of the platform
*/
public String getPlatform();
/**
* Returns whether this module is little endian.
*
* @return whether this module is little endian
*/
public boolean isLittleEndian();
/**
* Returns the CPU identifier.
*
* @return the CPU identifier
*/
public String getCPU();
}