/******************************************************************************* | |
* Copyright (c) 2009, 2010 Nokia 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: | |
* Nokia - Initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.cdt.debug.edc.symbols; | |
import org.eclipse.cdt.core.ISymbolReader; | |
/** | |
* Top-level interface for getting symbolics information. The executable | |
* symbolics reader and IDebugInfoProvider (behind the scenes) work together | |
* to provide the full information. The symbolics | |
* information includes debug information (e.g. DWARF, CODEVIEW) and symbol | |
* table data. A binary file may only have symbol table without debug | |
* information. | |
*/ | |
public interface IEDCSymbolReader extends IExecutableSymbolicsReader, ISymbolReader { | |
/** | |
* Call when the reader is no longer needed and should free up any resources. | |
*/ | |
void shutDown(); | |
/** | |
* Check whether the symbol file has debug information recognized by this | |
* reader. The debug information here means data in the binary file that's | |
* specially for debugger, such as DWARF and CODEVIEW. The symbol table | |
* section data in many types of binary files is not considered debug | |
* information here. | |
* | |
* @return true if the symbol reader has dedicated debug information | |
*/ | |
boolean hasRecognizedDebugInformation(); | |
/** | |
* Get the module-level scope for the primary symbol file | |
* @return scope, never <code>null</code> | |
* @see #getSymbolFile() | |
*/ | |
IModuleScope getModuleScope(); | |
/** | |
* Get symbolics reader for the primary symbol file | |
* @return symbol reader | |
* @since 3.0 | |
*/ | |
IExecutableSymbolicsReader getSymbolicsReader(); | |
} |