diff -r 185201be11b0 -r 516af714ebb4 analyzetool/commandlineengine/inc/catromsymbol.h --- a/analyzetool/commandlineengine/inc/catromsymbol.h Thu Sep 02 22:05:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Defines CATRomSymbol, RofsBinary classes and Symbol -* structure. -* -*/ - - -#ifndef __CATROMSYMBOL_H__ -#define __CATROMSYMBOL_H__ - -#include "ATCommonDefines.h" -#include "iaddresstoline.h" - -const string ROM_SYMBOL_IDENTIFY_STRING = "80"; -const string ROFS_SYMBOL_IDENTIFY_STRING = "00"; -const int IDENTIFY_MAX_LINES_READ = 20; - -/** -* Represents a single symbol in a binary. -*/ -struct Symbol -{ - unsigned long iStartAddress; /** Start address */ - unsigned long iEndAddress; /** End address */ - string sFunction; /** Function/Symbol name */ - /** - * Default constructor for structure to set default values - */ - Symbol() { iStartAddress=0; iEndAddress=0; sFunction = ""; } - /** - * Empty destructor - */ - ~Symbol() {} -}; - - -/** -* Represents a single binary in ROM/ROFS which -* contains a collection of Symbols. -*/ -class RofsBinary { -public: - /** - * Constructor - */ - RofsBinary(); - /** - * Constructor - * @param sbinary - */ - RofsBinary( const string& sbinary ); - /** - * Destructor - */ - ~RofsBinary(); - - // Members - - string m_sBinary; /** Binary / code segment */ - vector vSymbols; /** Collection of symbols */ -}; - -/** -* Implements IAddressToLine interface to acquire symbol information -* using memory addresses from rom/rofs symbol files. -*/ -class CATRomSymbol : public IAddressToLine -{ -public: - /** - * Constructor. - */ - CATRomSymbol(); - /** - * Destructor. - */ - virtual ~CATRomSymbol(); - bool m_bShowProgressMessages; /** "Flag" will we show progress when reading files */ - /** - * Empty functions does nothing returns false always. - * @param sString - * @param iLong - * @return true if successful. - */ - bool Open( const string& sString, const unsigned long iLong); - /** - * Set symbol files. - * This also checks that files exists and identifies them as rom/rofs. - * @param vSymbols - * @return bool - */ - bool SetSymbols( const vector& vSymbols); - /** - * Get error string. In case of any method failed use this to acquire details on error. - * @return error string. - */ - string GetError( void ); - /** - * Close rom symbol file. - * @return true if succesful. - */ - bool Close( void ); - /** - * Locates symbol and binary name for given address if found in rom. - * @param result memory address object. - * @return true if successful. - */ - bool AddressToLine( CATMemoryAddress* result ); -#ifndef MODULE_TEST -private: -#endif - /** - * Represents the symbol files type - * (content is different / format ) - */ - enum SYMBOL_FILE_TYPE { - SYMBOL_FILE_INVALID = 0, /** not valid */ - SYMBOL_FILE_ROM, /** rom type */ - SYMBOL_FILE_ROFS /** rofs type */ - }; - /** - * Identify symbol file - * @param sFile - * @return int - */ - int IdentifySymbolFile( const string& sFile ); - /** - * Locate symbol and binary name for given address if found in rom. - * @param result - * @return bool - */ - bool AddressToLineRom( CATMemoryAddress* result ); - /** - * Locate symbol and binary name for given address if found in rofs. - * @param result - * @return bool - */ - bool AddressToLineRofs( CATMemoryAddress* result ); - /** - * Reads rom files. - * @return bool - */ - bool ReadRomFiles(); - /** - * Read specified rom file - * @param sFile - * @return bool - */ - bool ReadRomFile( const string& sFile ); - /** - * Read rofs files - * @return bool - */ - bool ReadRofsFiles(); - /** - * Read specified rofs file - * @param sFile - * @return bool - */ - bool ReadRofsFile( const string& sFile ); - /** - * Parse symbol from a line in rom/rofs file. - * @param sLine - * @param pSymbol - */ - void ParseSymbolFromLine( const string& sLine, Symbol* pSymbol ); -#ifndef MODULE_TEST -private: -#endif - - // Members - - bool m_bFilesIdentified; /** Have we identified symbol file(s) */ - bool m_bSymbolsRead; /** Have we read symbol file(s) */ - vector m_vRomFiles; /** Rom symbol file(s) */ - vector m_vRomCache; /** Cached rom symbols */ - vector m_vRomSymbols; /** All rom symbols */ - unsigned long m_iRomStartAddress; /** Rom start address */ - unsigned long m_iRomEndAddress; /** Rom end address */ - vector m_vRofsFiles; /** Rofs symbol file(s) */ - vector m_vRofsBinaries; /** Rofs binaries */ - string m_sErrorMessage; /** Error message */ -}; -#endif \ No newline at end of file