memana/analyzetoolclient/commandlineengine/internal/src/cataddr2line.cpp
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:51:35 +0200
changeset 0 f0f2b8682603
permissions -rw-r--r--
Add initial version of AnalyzeTool client under EPL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
* Contributors:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
* Description:  Main module for addr2line pinpointing.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
#include "../inc/cataddr2line.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
#include "../inc/CATMemoryAddress.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
#include "../inc/CATBase.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
#include "../inc/CATDatParser.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
#define ASCII_CHAR_CARRIAGE_RETURN 0x0D
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
CATAddr2line::CATAddr2line()
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
	LOG_FUNC_ENTRY("CATAddr2line::CATAddr2line");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
bool CATAddr2line::Open( const string& sParameter, const unsigned long /* iLong */ )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
	LOG_FUNC_ENTRY("CATAddr2line::Open");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
	//Debugging for addr2line task.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
	//debug.open( "addr2line-lines.txt", ios_base::trunc );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
	m_sMapFileName.clear();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
	// Add .map extendsion
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
	m_sMapFileName.append( sParameter );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
	m_sMapFileName.append( ".map" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
	ReadMapFileArmv5();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
	//Make symfile path+name
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
	string sFullPathToSymFile(sParameter);
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
	sFullPathToSymFile.erase( sFullPathToSymFile.find_last_of( "." ), string::npos );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
	sFullPathToSymFile.append( ".sym" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
	// Check with extension + .sym also.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
	if ( ! CATBase::FileExists( sFullPathToSymFile.c_str() ) )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
		sFullPathToSymFile.clear();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
		sFullPathToSymFile.append( sParameter );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
		sFullPathToSymFile.append( ".sym" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
	return server.Initialize( sFullPathToSymFile );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
string CATAddr2line::GetError( void )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
	LOG_FUNC_ENTRY("CATAddr2line::GetError");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
	string s;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
	return s;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
bool CATAddr2line::Close( void )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
	LOG_FUNC_ENTRY("CATAddr2line::Close");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
	//Debugging for addr2line task.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
	//debug.close();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
	return true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
bool CATAddr2line::AddressToLine( CATMemoryAddress* result )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
	LOG_FUNC_ENTRY("CATAddr2line::AddressToLine");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
	
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
	result->SetAddressToLineState( CATMemoryAddress::ADDRESS_TO_LINE_STATE::OUT_OF_RANGE);
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
	if( !server.GetProcessCreatedState() )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
		return false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
	//Count address
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
	ULONG uStartA = result->GetModuleStartAddress();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
	ULONG uMemoryA = result->GetAddress();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
	ULONG uCountedA = uMemoryA - uStartA;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
	uCountedA += FUNCTIONS_OFFSET_IN_GCCE;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
	string sTemp = CATBase::NumberToHexString( uCountedA );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
    //Remove "0x"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
    size_t iCounter = sTemp.find_first_of('x');
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
    if( iCounter != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
    {
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
		sTemp.erase( 0, (int)iCounter+1 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
    }
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
	// Write to pipe that is the standard input for a child process.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
	server.WriteToPipe( sTemp ); 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
	// Read from pipe that is the standard output for child process.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
    string s = server.ReadFromPipe();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
	//If output not empty, parse output
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
	if( !s.empty() )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   103
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   104
		//Debugging code for addr2line task.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   105
		//debug.write( "##########\n", 12 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   106
		//debug.write( s.c_str(), s.size() );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   107
		result->SetAddressToLineState( CATMemoryAddress::ADDRESS_TO_LINE_STATE::EXACT );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   108
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   109
		string s2;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   110
		size_t iLocation = s.find_first_of( ASCII_CHAR_CARRIAGE_RETURN );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   111
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   112
		bool bFunctionNameFoundUsingAddr2line = false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   113
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   114
		//Function name
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   115
		
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   116
		if(iLocation != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   117
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   118
			s2 = s.substr( 0, iLocation );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   119
			//All characters ascii?
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   120
			if( CATBase::IsAscii( s2.c_str(), (int)s2.length() ) )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   121
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   122
				//addr2line returns $x if function name not found
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   123
				//length must over 2 to be real function name
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   124
				if( s2.length() > 2 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   125
				{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   126
					bFunctionNameFoundUsingAddr2line = true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   127
					result->SetFunctionName( s2 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   128
					s.erase( 0, iLocation+2 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   129
				}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   130
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   131
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   132
		//If function name not found using addr2line find it from map file
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   133
		if( !bFunctionNameFoundUsingAddr2line )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   134
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   135
			string sFuncName( GetFunctionNameUsingAddress( uCountedA ) );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   136
			//If function name empty, print "???"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   137
			if( sFuncName.empty() )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   138
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   139
				s2 = "???";
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   140
				result->SetFunctionName( s2 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   141
				if(iLocation != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   142
				{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   143
					s.erase( 0, iLocation+2 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   144
				}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   145
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   146
			else
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   147
				result->SetFunctionName( sFuncName );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   148
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   149
		iLocation = s.find_first_of( ':' );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   150
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   151
		//Filename and location
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   152
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   153
		if(iLocation != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   154
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   155
			s2 = s.substr( 0, iLocation );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   156
			result->SetFileName( s2 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   157
			s.erase( 0, iLocation+1 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   158
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   159
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   160
		//Exact line number
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   161
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   162
		s2 = s.substr( 0, s.find_first_of( ASCII_CHAR_CARRIAGE_RETURN ) );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   163
		result->SetExactLineNumber( atoi( s2.c_str() ) );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   164
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   165
	return true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   166
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   167
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   168
bool CATAddr2line::ReadMapFileArmv5()
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   169
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   170
	LOG_FUNC_ENTRY("CATModule2::ReadMapFileArmv5");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   171
	// Open .map file
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   172
	ifstream in( m_sMapFileName.c_str() );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   173
	// File open ok?
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   174
	if( ! in.good() )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   175
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   176
		in.close();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   177
		return false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   178
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   179
	char cTemp[MAX_LINE_LENGTH];
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   180
	bool bFirstFuncFound = false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   181
	bool bFirstLine = true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   182
	// Get all lines where is "Thumb"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   183
	do
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   184
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   185
		// Load one line from .map file
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   186
		in.getline( cTemp, MAX_LINE_LENGTH );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   187
		if( bFirstLine )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   188
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   189
			bFirstLine = false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   190
			if( strstr( cTemp, "ARM Linker" ) == NULL )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   191
				return false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   192
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   193
		// Find _E32Startup
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   194
		if( !bFirstFuncFound && ( strstr( cTemp, "_E32Startup" ) != NULL) )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   195
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   196
			bFirstFuncFound = true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   197
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   198
		else if( !bFirstFuncFound && ( strstr( cTemp, "_E32Dll" ) != NULL) )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   199
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   200
			bFirstFuncFound = true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   201
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   202
		else if( !bFirstFuncFound )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   203
			// Skip if _E32Startup not found
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   204
			continue;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   205
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   206
		if( strstr( cTemp, "Thumb Code" ) != NULL || strstr( cTemp, "ARM Code" ) != NULL)
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   207
		{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   208
			MAP_FUNC_INFO structMapFileLineInfo;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   209
			structMapFileLineInfo.sWholeLine.append( cTemp );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   210
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   211
			// Get memory string address from line
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   212
			char* pStart = strstr( cTemp, "0x" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   213
			// Check did strstr return null.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   214
			if ( pStart == NULL )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   215
				continue;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   216
			char* pTemp = pStart;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   217
			char TempString[MAX_LINE_LENGTH];
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   218
			TempString[0] = 0;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   219
			size_t iLength = 0;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   220
			while( *pTemp != ' ' )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   221
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   222
				TempString[iLength] = *pTemp;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   223
				pTemp++;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   224
				iLength++;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   225
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   226
			TempString[iLength] = 0;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   227
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   228
			structMapFileLineInfo.iAddress = CATDatParser::_httoi( TempString );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   229
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   230
			pTemp = cTemp;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   231
			TempString[0] = 0;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   232
			
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   233
			// Get function name
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   234
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   235
			// Skip spaces
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   236
			while( *pTemp == ' ' )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   237
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   238
				pTemp++;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   239
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   240
			iLength = 0;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   241
			// Find end of function name
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   242
			string sTemp( pTemp );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   243
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   244
			// Location of character ')'
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   245
			iLength = sTemp.find_first_of(')');
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   246
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   247
			// Location of character ' '
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   248
			size_t iLength2 = sTemp.find_first_of(' ');
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   249
			
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   250
			// If ')' character is the last char and
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   251
			// character ' ' is closer than ')' use location of ' '
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   252
			if( ( iLength + 1 ) == sTemp.length() && iLength2 < iLength )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   253
				iLength = iLength2 - 1;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   254
			
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   255
			if( iLength != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   256
				sTemp.resize( (iLength + 1) );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   257
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   258
			structMapFileLineInfo.sFunctionName.append( sTemp.c_str() );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   259
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   260
			bool bARM = false;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   261
			// Find function length
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   262
			pStart = strstr( cTemp, "Thumb Code" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   263
			if( pStart == NULL )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   264
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   265
				pStart = strstr( cTemp, "ARM Code" );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   266
				bARM = true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   267
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   268
			if( pStart != NULL )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   269
			{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   270
				if( bARM )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   271
					pStart += 8;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   272
				else
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   273
					pStart += 10;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   274
				while(*pStart == ' ')
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   275
				{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   276
					pStart++;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   277
				}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   278
				sTemp.clear();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   279
				sTemp.append( pStart );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   280
				size_t iSize = sTemp.find_first_of(' ');
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   281
				if( iSize != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   282
					sTemp.resize( iSize );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   283
			}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   284
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   285
			structMapFileLineInfo.iFuncLength = atoi( sTemp.c_str() );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   286
			if( bFirstFuncFound && structMapFileLineInfo.iFuncLength > 0 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   287
				// Save to list
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   288
				m_vMapFileFuncList.push_back( structMapFileLineInfo );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   289
		}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   290
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   291
	while( in.good() );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   292
	in.close();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   293
	return true;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   294
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   295
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   296
// Find function name of given address
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   297
string CATAddr2line::GetFunctionNameUsingAddress( unsigned long iAddress )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   298
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   299
	LOG_LOW_FUNC_ENTRY("CATAddr2line::GetSymbolIndexUsingAddress");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   300
	string sRet;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   301
	for( size_t i = 0; i < m_vMapFileFuncList.size(); i++ )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   302
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   303
		unsigned long iStart = m_vMapFileFuncList.at( i ).iAddress;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   304
		unsigned long iEnd = ( m_vMapFileFuncList.at( i ).iAddress
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   305
			+ m_vMapFileFuncList.at( i ).iFuncLength );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   306
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   307
		if ( iAddress >= iStart && iAddress < iEnd )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   308
			return m_vMapFileFuncList.at( i ).sFunctionName;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   309
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   310
	return sRet;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   311
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   312
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   313
//Note: New filtering functions commented out until they are taken into use.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   314
/**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   315
* Filter string out of unwanted characters.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   316
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   317
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   318
void CATAddr2line::FilterString( string &sString )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   319
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   320
	LOG_LOW_FUNC_ENTRY("CATAddr2line::FilterString");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   321
	string sFiltered("");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   322
	for( size_t i = 0 ; i < sString.length() ; i++ )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   323
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   324
		const char p = sString.at( i );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   325
		if ( p != 0 && strchr( ADDR2LINEALLOWEDCHARS, p ) != 0 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   326
			sFiltered.push_back( p );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   327
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   328
	sString = sFiltered;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   329
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   330
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   331
/**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   332
* Find line feed position from string.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   333
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   334
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   335
size_t CATAddr2line::FindLineFeed( const string& sString )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   336
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   337
	LOG_LOW_FUNC_ENTRY("CATAddr2line::FindLineFeed");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   338
	size_t iLineFeed1 = sString.find( 12 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   339
	size_t iLineFeed2 = sString.find( 15 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   340
	if ( iLineFeed1 < iLineFeed2 && iLineFeed1 != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   341
		return iLineFeed1;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   342
	else if ( iLineFeed2 != string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   343
		return iLineFeed2;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   344
	else
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   345
		return string::npos;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   346
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   347
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   348
/**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   349
* Erase characters from start of the string until other char than linefeed found.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   350
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   351
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   352
void CATAddr2line::EraseUntilNoLineFeed( string& sString )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   353
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   354
	LOG_LOW_FUNC_ENTRY("CATAddr2line::EraseUntilNoLineFeed");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   355
	for ( size_t i = 0 ; i < sString.length() ; i++ )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   356
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   357
		if ( sString.at( i ) != 15 && sString.at( i ) != 12 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   358
			break;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   359
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   360
	sString.erase( 0, i );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   361
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   362
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   363
/**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   364
* Split multiple line string with unexpected line feeds to vector of strings.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   365
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   366
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   367
vector<string> CATAddr2line::SplitToStrings( string& sMultiLineString )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   368
{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   369
	LOG_LOW_FUNC_ENTRY("CATAddr2line::SplitToStrings");
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   370
    vector<string> vLines;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   371
	while ( 1 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   372
	{
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   373
		size_t iLineFeed = FindLineFeed( sMultiLineString );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   374
		if ( iLineFeed == string::npos )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   375
			break;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   376
		string sCell = sMultiLineString.substr(0, iLineFeed );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   377
		sMultiLineString.erase(0, iLineFeed );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   378
		EraseUntilNoLineFeed( sMultiLineString );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   379
		FilterString( sCell );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   380
		vLines.push_back( sCell );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   381
	}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   382
	// If no lines were found set single one.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   383
	if ( vLines.size() == 0 )
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   384
		vLines.push_back( sMultiLineString );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   385
	return vLines;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   386
}
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   387
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   388
//EOF