memana/analyzetoolclient/commandlineengine/internal/src/atool.cpp
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
--- a/memana/analyzetoolclient/commandlineengine/internal/src/atool.cpp	Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +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 the entry point for the console application.
-*
-*/
-
-// Includes.
-#include "../inc/ATCommonDefines.h"
-#include "../inc/CATDatParser.h"
-#include "../inc/CATParseTraceFile.h"
-#include "../inc/CATProject.h"
-
-//Debug logging parameters
-//To enable debugging as argument to atool.exe use:
-//--show_debug / -show_debug : Normal logging in console.
-//--show_debug_all / -show_debug_all : Log all (low level functions also) to console.
-//--show_dbgview / -show_dbgview : Normal logging to windows debug messages.
-//--show_dbgview_all / -show_dbgview_all : Log all (low level functions also) to windows debug messages.
-
-//Return codes (errorlevel) defined in AT_RETURN_CODE structure see ATCommonDefines.h.
-
-extern bool g_bDebugConsole = false;
-extern bool g_bDebugDbgView = false;
-extern bool g_bDebugLowLevel = false;
-
-//Argument parsing.
-extern bool parseBaseArguments( vector<string>& vArgs, ARGUMENTS& args );
-extern bool parseHookArguments( vector<string>& vArgs, ARGUMENTS& args );
-extern bool parseOldHookArguments( vector<string>& vArgs, ARGUMENTS& args );
-extern bool parseAnalyzeArguments( vector<string>& vArgs, ARGUMENTS& args );
-extern bool parseHtiArguments( vector<string>& vArgs, ARGUMENTS& args );
-extern bool parseParseArguments( vector<string>& vArgs, ARGUMENTS& args );
-
-//Helps.
-extern void print_help( void );
-extern void print_syntax_examples( void );
-
-//AT Library check functions
-extern bool CheckATLibrariesArmv5( string sEpocRoot );
-extern bool CheckATLibrariesArmv5Abiv2( string sEpocRoot );
-extern bool CheckATLibrariesWinscw( string sEpocRoot );
-
-//Hti functions.
-#ifdef HTI_SUPPORT
-extern int htiGetReport( int argc, _TCHAR* argv[] );
-extern int htiDeleteFile( int argc, _TCHAR* argv[] );
-#endif
-
-//CLE version functions.
-extern int showVersionInfo( void );
-
-//Miscelllanaeous functions.
-extern bool CheckSBS2Folder( void );
-
-const char DEBUG_PARAMETER_CONSOLE[] = "-debug";
-const char DEBUG_PARAMETER_DBGVIEW[] = "-dbgview";
-const char SBS2_PARAMETER[] = "-sbs2";
-char g_cCurrentDir[MAX_LINE_LENGTH];
-
-//Global compile class objects are neededif ctrl+c is pressed mmp file must be restored.
-CATProject project_module;
-
-//Parse object.
-CATParseTraceFile Parser;
-
-/**
-* Handle process control signals.
-*/
-BOOL WINAPI HandlerRoutine( DWORD dwCtrlType )
-{
-	//Run recovery and exit for project if user presses ctrl+c
-	//or close signal is received.
-	if( dwCtrlType == CTRL_C_EVENT || dwCtrlType == CTRL_CLOSE_EVENT )
-	{
-		int iMode = project_module.GetMode();
-		if ( iMode == CATProject::COMPILE
-			|| iMode == CATProject::INSTRUMENT
-			|| iMode == CATProject::INSTRUMENT_CONSOLE )
-			project_module.RunRecoveryAndExit();
-	}
-	//Return false so program execution is stopped.
-	return false;
-}
-// TESTING
-int _tmain( int argc, _TCHAR* argv[] )
-{
-	#ifdef MEM_LEAK_CHECK
-	_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
-	#endif
-	try {
-		//Set function to handle process control signals.
-		SetConsoleCtrlHandler( HandlerRoutine, true );
-		vector<string> vArguments;
-		for( int i = 1 ; i < argc ; i++ )
-		{
-			vArguments.push_back( argv[i] );
-		}
-		//Help variables.
-		string sEpocRoot("");
-		//Parse base arguments.
-		ARGUMENTS args;
-		parseBaseArguments( vArguments, args );
-
-		// Debugging messages.
-		if ( args.bDebugConsole == true )
-			g_bDebugConsole = true;
-		if ( args.bDebugDbgView == true )
-			g_bDebugDbgView = true;
-		if ( args.bDebugLowLevel == true )
-			g_bDebugLowLevel = true;
-
-		//According to main switch parse rest arguments.
-		switch( args.eMainSwitch )
-		{
-		case SWITCH_UNKNOWN:
-			print_help();
-			return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-		case SWITCH_ANALYZE:
-			if ( ! parseAnalyzeArguments( vArguments, args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			// Get epocroot
-			if( ! CATBase::GetEpocRoot( sEpocRoot ) )
-				return AT_RETURN_CODE::CANNOT_FIND_EPOCROOT;
-			project_module.SetEpocRoot( sEpocRoot );
-			// project not uninstrumented run it first.
-			if ( ! project_module.IsUninstrumented() )
-			{
-				project_module.SetMode( CATProject::UNINSTRUMENT_CONSOLE );
-				project_module.Run();
-			}
-			// Set mode.
-			project_module.SetMode( CATProject::ANALYZE );
-			project_module.SetLogLevel( args.ANALYZE.iLoggingLevel );
-			project_module.SetDataFile( args.ANALYZE.sDataFile );
-			if ( args.ANALYZE.bSymbolFile )
-				project_module.SetRomSymbolFiles( args.ANALYZE.vSymbolFiles );
-			project_module.SetDataFileOutput( args.ANALYZE.sOutputFile);
-			return project_module.Run();
-		case SWITCH_HOOK:
-			// Parse arguments related to hooking.
-			if ( ! parseHookArguments( vArguments, args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			// Set variables for project.
-			if ( ! project_module.SetArguments( args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			// Get epocroot
-			if( ! CATBase::GetEpocRoot( sEpocRoot ) )
-				return AT_RETURN_CODE::CANNOT_FIND_EPOCROOT;
-			project_module.SetEpocRoot( sEpocRoot );
-			// Check AnalyzeTool libraries
-			if ( _stricmp( args.HOOK.sPlatform.c_str(), "winscw") == 0 )
-			{
-				// Emulator winscw platform
-				if ( ! CheckATLibrariesWinscw(sEpocRoot) )
-					return AT_RETURN_CODE::AT_LIBS_MISSING;
-			}
-			else
-			{
-				// Armv5
-				if ( args.HOOK.iBuildSystem == 2 )
-				{
-					// Abiv2
-					if ( ! CheckATLibrariesArmv5Abiv2(sEpocRoot) )
-						return AT_RETURN_CODE::AT_LIBS_MISSING;
-				}
-				else
-				{
-					// Abiv1
-					if( ! CheckATLibrariesArmv5(sEpocRoot) )
-						return AT_RETURN_CODE::AT_LIBS_MISSING;
-				}
-			}
-			// Run hooking.
-			return project_module.Run();
-			//Uninstrument
-		case SWITCH_UNHOOK:
-			// Set variables for project.
-			if ( ! project_module.SetArguments( args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			// Get epocroot
-			if( ! CATBase::GetEpocRoot( sEpocRoot ) )
-				return AT_RETURN_CODE::CANNOT_FIND_EPOCROOT;
-			project_module.SetEpocRoot( sEpocRoot );
-			return project_module.Run();
-			//Support for old extensions.
-		case SWITCH_OLD_HOOK:
-			// Parse old style arguments related to hooking.
-			if ( ! parseOldHookArguments( vArguments, args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			// Set mode for project.
-			if( args.eHookSwitch == HOOK_OLD_EXTENSION_INSTRUMENT )
-				project_module.SetMode( CATProject::INSTRUMENT );
-			else if( args.eHookSwitch == HOOK_OLD_EXTENSION_UNINSTRUMENT )
-				project_module.SetMode( CATProject::UNINSTRUMENT );
-			else if( args.eHookSwitch == HOOK_OLD_EXTENSION_FAILED )
-				project_module.SetMode( CATProject::UNINSTRUMENT_FAILED );
-			else
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-
-			// Get epocroot
-			if( ! CATBase::GetEpocRoot( sEpocRoot ) )
-				return AT_RETURN_CODE::CANNOT_FIND_EPOCROOT;
-			project_module.SetEpocRoot( sEpocRoot );
-
-			// Check AnalyzeTool libraries
-			if ( _stricmp( args.HOOK.sPlatform.c_str(), "winscw") == 0 )
-			{
-				// Emulator winscw platform
-				if ( ! CheckATLibrariesWinscw(sEpocRoot) )
-					return AT_RETURN_CODE::AT_LIBS_MISSING;
-			}
-			else
-			{
-				// Armv5
-				if ( args.bEnableSbs2 == true )
-				{
-					// Abiv2
-					if ( ! CheckATLibrariesArmv5Abiv2(sEpocRoot) )
-						return AT_RETURN_CODE::AT_LIBS_MISSING;
-				}
-				else
-				{
-					// Abiv1
-					if( ! CheckATLibrariesArmv5(sEpocRoot) )
-						return AT_RETURN_CODE::AT_LIBS_MISSING;
-				}
-			}
-
-			// In uninstrument we check folder otherwise the switch for sbs version.
-			if ( project_module.GetMode() == CATProject::UNINSTRUMENT )
-			{
-					if ( CheckSBS2Folder() )
-						project_module.SetBuildSystem( CATProject::SBS_V2 );
-					else
-						project_module.SetBuildSystem( CATProject::SBS_V1 );
-			}
-			else
-			{
-				if ( args.bEnableSbs2 == true )
-					project_module.SetBuildSystem( CATProject::SBS_V2 );
-				else
-					project_module.SetBuildSystem( CATProject::SBS_V1 );
-			}
-			// platform
-			project_module.SetPlatform( args.HOOK.sPlatform );
-
-			// build type
-			if ( !_stricmp( args.HOOK.sBuildType.c_str(), "urel" ) )
-				project_module.SetBuildType( CATProject::UREL );
-			else if ( !_stricmp( args.HOOK.sBuildType.c_str(), "udeb" ) )
-				project_module.SetBuildType( CATProject::UDEB );
-
-			// Variant
-			project_module.SetVariant( args.HOOK.sFeatureVariant );
-
-			// If selected modules to be compiled
-			project_module.SetTargetModules( args.HOOK.vTargetPrograms );
-
-			// S60 data file name
-			if ( args.HOOK.bDataFileName )
-				project_module.SetS60FileName( args.HOOK.sDataFileName );
-
-			// logging mode
-			if ( args.HOOK.iLoggingMode == 2 )
-				project_module.SetLoggingMode( CATProject::S60 );
-			else
-				project_module.SetLoggingMode( CATProject::XTI );
-			// run
-			return project_module.Run();
-		case SWITCH_VERSION:
-			return showVersionInfo();
-		case SWITCH_CLEAN:
-			project_module.SetMode( CATProject::CLEAN );
-			if ( CheckSBS2Folder() )
-				project_module.SetBuildSystem( CATProject::SBS_V2 );
-			else
-				project_module.SetBuildSystem( CATProject::SBS_V1 );
-			return project_module.Run();
-		case SWITCH_PARSE_TRACE:
-			if ( ! parseParseArguments( vArguments, args ) )
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			if (  CATBase::IsDataFile( args.PARSE.sDataFile ) )
-			{
-				cout << AT_MSG << "Error, " << args.PARSE.sDataFile << " is already parsed." << endl;
-				return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-			}
-			if ( args.PARSE.bOutputFile )
-			{
-				//Save data with name in arguments[3]
-				Parser.StartParse( args.PARSE.sDataFile.c_str(), args.PARSE.sOutputFile.c_str() );
-			}
-			else
-			{
-				Parser.StartParse( args.PARSE.sDataFile.c_str(), NULL );
-			}
-			return AT_RETURN_CODE::OK;
-		#ifdef HTI_SUPPORT
-		case SWITCH_HTI_DELETE:
-			return htiDeleteFile( argc, argv );
-		case SWITCH_HTI_GET:
-			return htiGetReport( argc, argv );
-		#endif
-		case SWITCH_HELP:
-			print_help();
-			print_syntax_examples();
-			return AT_RETURN_CODE::OK;
-		default:
-			cout << AT_MSG << "Invalid parameters." << endl;
-			return AT_RETURN_CODE::INVALID_ARGUMENT_ERROR;
-		}
-
-	} catch(...)
-	{
-		cout << AT_MSG << "Error, unhandled exception." << endl;
-		return AT_RETURN_CODE::UNHANDLED_EXCEPTION;
-	}
-}
-
-//EOF