/******************************************************************************* * Copyright (c) 2004, 2005 QNX Software Systems 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: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.debug.core.model; import org.eclipse.cdt.core.IAddress; import org.eclipse.cdt.core.IAddressFactory; import org.eclipse.core.runtime.IPath; import org.eclipse.debug.core.DebugException; /** * Represents a module in the process being debugged. * * @since 3.0 */ public interface ICModule extends ICDebugElement { /** * 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 <code>EXECUTABLE</code>, * <code>SHARED_LIBRARY</code>, <code>CORE</code>. * * @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 IAddress 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 address factory associated with this module. * * @return the address factory */ public IAddressFactory getAddressFactory(); /** * Returns the CPU identifier. * * @return the CPU identifier */ public String getCPU(); }