--- a/analyzetool/commandlineengine/inc/CATModule2.h Thu Sep 02 22:05:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,545 +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: Class representing a module in project (sbs2).
-*
-*/
-
-
-#ifndef __CATMODULE2_H__
-#define __CATMODULE2_H__
-
-// Includes.
-#include "ATCommonDefines.h"
-#include "CATBase.h"
-#include "CATMmp.h"
-
-// Forward declarations.
-class CATMemoryAddress;
-class IAddressToLine;
-
-/**
-* CATModule2 represents a module/component (single binary) in project.
-* CATProject contains a collection of these.
-*/
-class CATModule2 : public CATBase
-{
-
-public:
- /**
- * Constructor.
- */
- CATModule2(void);
-
- /**
- * Destructor.
- */
- ~CATModule2(void);
-
- /**
- * Read modules attributes from SBS v.1 makefile.
- * Also copies makefile to temporary directory if successful.
- */
- bool ReadMakeFile();
-
- /**
- * Read modules attributes from SBS v.1 makefile.
- * From make file which is in modules temporary directory.
- */
- bool ReadMakeFileFromTemp();
-
- /**
- * Add sources using line where source files separated by spaces.
- * @param sSourceLine.
- */
- void AddSources(string& sSourceLine);
-
- /**
- * Add sources by giving source file and its corresponding listing file.
- * @param sSourceFile
- * @param sLstFile
- */
- void AddSource(const string& sSourceFile, const string& sLstFile);
-
- /**
- * Create AT temporary cpp file for module.
- * @param sS60FileName.
- * @param eLoggingMode.
- * @param eBuildType.
- * @param iAllocCallStackSize.
- * @param iFreeCallStackSize.
- * @return true if successful.
- */
- bool CreateTempCpp(const string& sS60FileName
- , int eLoggingMode
- , int eBuildType
- , int iAllocCallStackSize
- , int iFreeCallStackSize );
-
- /**
- * Add AT changes to modules mmp file.
- * @return true if successful.
- */
- bool ModifyMmp();
-
- /**
- * Restore any changes made to modules mmp file.
- * @return true if successful.
- */
- bool RestoreMmp();
-
- /**
- * Verify tha mmp does not contain AnalyzeTool made changes.
- * If it does contain them will remove them manually or using backup.
- * @return true if successful.
- */
- bool VerifyAndRecoverMmp();
-
- /**
- * Copy modules releasables to its temporary dir.
- * This includes map & lst files.
- * @return true if successful.
- */
- bool CopyReleasables();
-
- /**
- * Copy modules listing files to given directory.
- * After copy they will be deleted.
- * @param sDir target directory.
- * @return true if successful.
- */
- bool CopyLstFilesToDir( const string& sDir );
-
- /**
- * Delete modules lst files from their source
- * directories.
- * @return true if succesfful.
- */
- bool DeleteLstFilesFromSrc();
-
- /**
- * Clean modules temporary directory of files,
- * not defined in UNDELETE list.
- * @return true if successful
- */
- bool CleanTemporaryDir();
-
- /**
- * Delete modules temporary directory.
- * @return true if successful.
- */
- bool DeleteTemporaryDir();
-
- /**
- * Locate codeline of given memory address.
- * Given address must be calculated to correspond map file addresses.
- * @param pMemoryAddress object where to store results.
- * @return true if successful.
- */
- bool AddressToLine(CATMemoryAddress* pMemoryAddress);
-
- /**
- * Check does modules symbol file(s) exist.
- * @return true if it exists.
- */
- bool SymbolFileExist( void );
-
- /**
- * Check does modules map file(s) exists.
- * @return true if it exists.
- */
- bool MapFileExist( void );
-
- /**
- * Check does modules binary file(s) exist.
- * @return true if it exists.
- */
- bool BinaryFileExist( void );
-
-#ifndef MODULE_TEST
-private:
-#endif
-
- /**
- * Read modules attributes from make file.
- */
- bool ReadMakeFilePrivate();
-
- /**
- * Locate codeline of given memory address (winscw platform).
- * Given address must be calculated to correspond map file addresses.
- * @param pMemoryAddress object where to store results.
- * @return true if successful.
- */
- bool AddressToLineWinscw(CATMemoryAddress* pMemoryAddress );
-
- /**
- * Locate codeline of given memory address (armv5 platform).
- * Given address must be calculated to correspond map file addresses.
- * @param pMemoryAddress object where to store results.
- * @return true if successful.
- */
- bool AddressToLineArmv5(CATMemoryAddress* pMemoryAddress );
-
- /**
- * Locate codeline of given memory address.
- * Given address must be calculated to correspond map file addresses.
- * @param pMemoryAddress object where to store results.
- * @return true if successful.
- */
- bool AddressToLineAddr2lineExe( CATMemoryAddress* pMemoryAddress );
-
- /**
- * Search map file data (symbols) using given address.
- * @param iAddress memory address.
- * @return index of the symbol or -1 if not found.
- */
- int GetSymbolIndexUsingAddress(unsigned long iAddress) const;
-
- /**
- * Search listing files data using the given symbol name.
- * @param sSymbolName symbols name to find.
- * @return index of the found lst data or -1 if not found.
- */
- int GetLineInFileIndexUsingSymbolName(const string& sSymbolName) const;
-
- /**
- * Search the exact code line from given file.
- * @param sFileName listing file to search from.
- * @param iLine functions line number.
- * @param iFromFuncAddress how many bytes from functions start.
- * @return line number or -1 if not found.
- */
- int FindLeakCodeLine( string& sFileName, int iLine, unsigned long iFromFuncAddress ) const;
-
-public:
-
- /**
- * Set used build system (CATProject::BUILD_SYSTEM).
- * @param eBuildSystem.
- */
- void SetBuildSystem( int eBuildSystem );
-
- /**
- * Get defined build system.
- * @return int CATProject::BUILD_SYSTEM
- */
- int GetBuildSystem( void ) const ;
-
- /**
- * Set SBS v.1 makefile.
- * @param sMakeFile
- */
- void SetMakeFile( const string& sMakeFile );
-
- /**
- * Get SBS v.1 makefile.
- * @return string makefile.
- */
- string GetMakeFile( void ) const;
-
- /**
- * Initialize module ready for locating code lines.
- * with memory addresses (reads map and listing files).
- * return true if successful.
- */
- bool InitializeAddressToLine();
-
- /**
- * Set modules mmp file.
- * This also creates temporary dir if it is missing.
- * @return true if successful.
- */
- bool SetMmpFile(const string& sMmpFile);
-
- /**
- * Create modules own temporary directory.
- * @return true if successful.
- */
- bool CreateTemporaryDirectory();
-
- /**
- * Get modules mmp file.
- * @return mmp file.
- */
- string GetMmpFile() const;
-
- /**
- * Get modules atool_temp directory path.
- * @return atool_temp directory path.
- */
- string GetTempPath() const;
-
- /**
- * Get S60 logging file name.
- * @return s60 logging file name.
- */
- string GetS60FileName() const;
-
- /**
- * Set target binary name.
- * @param sTarget binary file name.
- */
- void SetTarget(const string& sTarget);
-
- /**
- * Get target binary name.
- * @return modules binary file name.
- */
- string GetTarget() const;
-
- /**
- * Set binary target type.
- * @param sTargetType binary target type.
- */
- void SetTargetType(const string& sTargetType);
-
- /**
- * Get binary target type.
- * @return binary target type.
- */
- string GetTargetType() const;
-
- /**
- * Set requested binary target file extension.
- * @param sRequestedTargetExt binary target file extension.
- */
- void SetRequestedTargetExt( const string& sRequestedTargetExt );
-
- /**
- * Get requested binary target file extension.
- * @return binary target file extension.
- */
- string GetRequestedTargetExt() const;
-
- /**
- * Get full name of modules binary.
- * @return modules binary files full name.
- */
- string GetBinaryName() const;
-
- /**
- * Set variant platform.
- * @param sVariantPlatform variant platform.
- */
- void SetVariantPlatform(const string& sVariantPlatform);
-
- /**
- * Get variant platform.
- * @return variant platform.
- */
- string GetVariantPlatform() const;
-
- /**
- * Set variant type.
- * @param sVariantType variant type.
- */
- void SetVariantType(const string& sVariantType);
-
- /**
- * Get variant type.
- * @return variant type.
- */
- string GetVariantType() const;
-
- /**
- * Set feature variant.
- * @param sFeatureVariant feature variant.
- */
- void SetFeatureVariant(const string& sFeatureVariant);
-
- /**
- * Get feature variant.
- * @return feature variant.
- */
- string GetFeatureVariant() const;
-
- /**
- * Set feature variant name.
- * @param sFeatureVariantName feature variant name.
- */
- void SetFeatureVariantName(const string& sFeatureVariantName);
-
- /**
- * Get feature variant name.
- * @return feature variant name.
- */
- string GetFeatureVariantName() const;
-
- /**
- * Set release path.
- * @param sReleasePath release path.
- */
- void SetReleasePath(const string& sReleasePath);
-
- /**
- * Get release path.
- * @return release path.
- */
- string GetReleasePath() const;
-
- /**
- * Set full variant path.
- * @param sFullVariantPath full variant path.
- */
- void SetFullVariantPath(const string& sFullVariantPath);
-
- /**
- * Get full variant path.
- * @return full variant path.
- */
- string GetFullVariantPath() const;
-
- /**
- * Set compile definition(s) of the module.
- * @param sCompileDefinitions
- */
- void SetCompileDefinitions( const string& sCompileDefinitions );
-
- /**
- * Get compile definition(s) of the module.
- * @return compile definition(s).
- */
- string GetCompileDefinitions() const;
-
- /**
- * Is modules target type udeb?
- * @return true if modules target type is udeb.
- */
- bool IsUDEB() const;
-
- /**
- * Is module build successfully?
- * This includes check of listing and map files from temporary directory.
- * @return true if module build successfully.
- */
- bool IsMakeSuccessfull();
-
- /**
- * Get error string. This includes possible erros what are generated when
- * IsMakeSuccesfull is called.
- * @return error string.
- */
- string GetErrors() const;
-
- /**
- * Create build complete file to modules temporary directory.
- * @return true if build complete file created successfully.
- */
- bool CreateBuildCompleteFile( void );
-
- /**
- * Read map file (armv5 platform).
- * @return true if map file read successfully.
- */
- bool ReadMapFileArmv5();
-
- /**
- * Set compile info text
- * @param sCompileInfoText
- */
- void SetCompileInfoText( string sCompileInfoText );
-
- /**
- * Get compile info text
- * @return compile info text
- */
- string GetCompileInfoText() const;
-
-#ifndef MODULE_TEST
-private:
-#endif
-
- /**
- * Struct for saving source information
- * sCpp is source file.
- * sLst sources corresponding lst file.
- * bStatic true if source information from static library.
- */
- struct SOURCE
- {
- bool bStatic;
- string sCpp;
- string sLst;
- SOURCE() : bStatic(false), sCpp(""), sLst("") {}
- };
-
- // Build system
- int m_eBuildSystem;
- // Sbs v.1 makefile
- string m_sMakeFile;
- // Mmp file.
- CATMmp m_Mmp;
- // Temporary directory with path.
- string m_sTempPath;
- // Target.
- string m_sTarget;
- // Target type.
- string m_sTargetType;
- // True target extension.
- string m_sRequestedTargetExt;
- // Variant platform.
- string m_sVariantPlatform;
- // Variant type.
- string m_sVariantType;
- // Feature variant.
- string m_sFeatureVariant;
- // Feature variant name.
- string m_sFeatureVariantName;
- // Release path (releasables).
- string m_sReleasePath;
- // Full variant path (path to releasables).
- string m_sFullVariantPath;
- // String to store information of compile
- string m_sCompileInfoText;
- // String to store possible error messages.
- string m_sErrors;
- // Compile definition(s)
- string m_sCompileDefinitions;
- // Source files.
- vector<SOURCE> m_vSources;
- // Listing data.
- vector<LINE_IN_FILE> m_vLineInFile;
- // Modules map data (symbols).
- vector<MAP_FUNC_INFO> m_vMapFileFuncList;
- // File logging mode filename.
- string m_sS60FileName;
- // Is all data loaded for address to code line functions.
- bool m_bAddressToLineInitialized;
- // Read listing files (armv5 platform).
- bool ReadListingFilesArmv5();
- // Get listing file name of given source file.
- string GetLstNameOfSource(string sSource) const;
- // Copy listing files to temporary directory.
- bool CopyLstFilesToTemp();
- // Copy map file to temporary directory.
- bool CopyMapFileToTemp();
- // Get full map file name.
- string GetMapFile() const;
- // Get full symbol file name.
- string GetSymbolFile() const;
- // Get full binary file name.
- string GetBinaryFile() const;
- // Helper function to check is platform armv5.
- bool IsPlatformArmv5() const;
- // Get "unique" id of module
- string GetUniqueId() const;
- // Sbs v.1 variant urel label.
- string m_sFeatureVariantURELLabel;
- // Sbs v.1 variant udeb label.
- string m_sFeatureVariantUDEBLabel;
- // Object used to get codelines of memory addresses.
- IAddressToLine* m_pAddressToLine;
-};
-#endif
-//EOF