analyzetool/commandlineengine/src/CATDatParser.cpp
branchRCL_3
changeset 59 8ad140f3dd41
parent 49 7fdc9a71d314
equal deleted inserted replaced
49:7fdc9a71d314 59:8ad140f3dd41
   362 	m_sCurrentProcessName = GetStringUntilNextSpace( sLine );
   362 	m_sCurrentProcessName = GetStringUntilNextSpace( sLine );
   363 	// Get Pid
   363 	// Get Pid
   364 	string sPid = GetStringUntilNextSpace( sLine );
   364 	string sPid = GetStringUntilNextSpace( sLine );
   365 	m_iCurrentProcessId = _httoi( sPid.c_str() );
   365 	m_iCurrentProcessId = _httoi( sPid.c_str() );
   366 
   366 
   367 	// Header for process start
   367 	// Header for process tart
   368 	m_DataSaver.AddString( "\n--------------------------------\n" );
   368 	m_DataSaver.AddString( "\n--------------------------------\n" );
   369 	m_DataSaver.AddString( "Test Run start (" );
   369 	m_DataSaver.AddString( "Test Run start (" );
   370 	m_DataSaver.AddString( m_sCurrentProcessName.c_str() );
   370 	m_DataSaver.AddString( m_sCurrentProcessName.c_str() );
   371 	m_DataSaver.AddString( "): " );
   371 	m_DataSaver.AddString( "): " );
   372 
   372 
   513 			int iTotalNrOfLeaks = 0;
   513 			int iTotalNrOfLeaks = 0;
   514 			// Print handle leaks
   514 			// Print handle leaks
   515 			for( size_t i = 0 ; i < m_vHandleLeaks.size() ; i++ )
   515 			for( size_t i = 0 ; i < m_vHandleLeaks.size() ; i++ )
   516 			{
   516 			{
   517 				string sTempHandleLeak( m_vHandleLeaks[i] );
   517 				string sTempHandleLeak( m_vHandleLeaks[i] );
       
   518 				// Name.
       
   519 				string sHandleLeakModule( GetStringUntilNextSpace( sTempHandleLeak ) );
   518 				// Count.
   520 				// Count.
   519 				string sNrOfLeaks( GetStringUntilNextSpace(sTempHandleLeak) );
   521 				string sNrOfLeaks( GetStringUntilNextSpace(sTempHandleLeak) );
   520 
       
   521 				// Name.
       
   522 				//string sHandleLeakModule( GetStringUntilNextSpace( sTempHandleLeak ) );
       
   523 				string sHandleLeakModule( "Unknown" );
       
   524 
       
   525 				unsigned long iNrOfLeaks = _httoi( sNrOfLeaks.c_str() );
   522 				unsigned long iNrOfLeaks = _httoi( sNrOfLeaks.c_str() );
   526 				iTotalNrOfLeaks += iNrOfLeaks;
   523 				iTotalNrOfLeaks += iNrOfLeaks;
   527 				if( iNrOfLeaks )
   524 				if( iNrOfLeaks )
   528 				{
   525 				{
   529 					if( !bHandLeaksFound )
   526 					if( !bHandLeaksFound )
   599 
   596 
   600 	// Create module from this if project platform emulator
   597 	// Create module from this if project platform emulator
   601 	if ( _stricmp( "winscw", m_sProjectPlatform.c_str() ) == 0 )
   598 	if ( _stricmp( "winscw", m_sProjectPlatform.c_str() ) == 0 )
   602 		CreateWinscwModule( structDllInfo.sModuleName );
   599 		CreateWinscwModule( structDllInfo.sModuleName );
   603 
   600 
       
   601 	if ( m_iDataVersion >= AT_DLL_TIMESTAMP_DATA_VERSION )
       
   602 	{
       
   603 		// Pickup module loading time.
       
   604 		string sLoadTime = GetStringUntilNextSpace( sLine );
       
   605 		unsigned long long ull;
       
   606 		if ( hexToDec( sLoadTime, ull ) )
       
   607 			structDllInfo.iLoadTime = ull;
       
   608 	}
       
   609 
   604 	// Get dll start memory string address from line
   610 	// Get dll start memory string address from line
   605 	// Convert string address to real memory address
   611 	// Convert string address to real memory address
   606 	structDllInfo.iStartAddress = 
   612 	structDllInfo.iStartAddress = 
   607 		_httoi( GetStringUntilNextSpace( sLine ).c_str() );
   613 		_httoi( GetStringUntilNextSpace( sLine ).c_str() );
   608 
   614 
   610 	// Convert string address to real memory address
   616 	// Convert string address to real memory address
   611 	structDllInfo.iEndAddress = 
   617 	structDllInfo.iEndAddress = 
   612 		_httoi( 
   618 		_httoi( 
   613 		GetStringUntilNextSpace( sLine ).c_str() );
   619 		GetStringUntilNextSpace( sLine ).c_str() );
   614 
   620 
   615 	if ( m_iDataVersion >= AT_DLL_TIMESTAMP_DATA_VERSION )
       
   616 	{
       
   617 		// Pickup module loading time.
       
   618 		string sLoadTime = GetStringUntilNextSpace( sLine );
       
   619 		unsigned long long ull;
       
   620 		if ( hexToDec( sLoadTime, ull ) )
       
   621 			structDllInfo.iLoadTime = ull;
       
   622 	}
       
   623 
       
   624 	// Is module already loaded, if not add it to list.
   621 	// Is module already loaded, if not add it to list.
   625 	bool bFound = false;
   622 	bool bFound = false;
   626 	for( vector<DLL_LOAD_INFO>::iterator it = m_vDllLoadModList.begin();
   623 	for( vector<DLL_LOAD_INFO>::iterator it = m_vDllLoadModList.begin();
   627 		it != m_vDllLoadModList.end() ; it++ )
   624 		it != m_vDllLoadModList.end() ; it++ )
   628 	{
   625 	{
   669 	GetStringUntilNextSpace( sLine );
   666 	GetStringUntilNextSpace( sLine );
   670 
   667 
   671 	// Get module name
   668 	// Get module name
   672 	string sModuleName = GetStringUntilNextSpace( sLine );
   669 	string sModuleName = GetStringUntilNextSpace( sLine );
   673 	ChangeToLower( sModuleName );
   670 	ChangeToLower( sModuleName );
   674 
       
   675 	// skip adresses - not currently used
       
   676 	GetStringUntilNextSpace( sLine );
       
   677 	GetStringUntilNextSpace( sLine );
       
   678 
   671 
   679 	// Unload time
   672 	// Unload time
   680 	unsigned long long ull;
   673 	unsigned long long ull;
   681 	string sUnload = GetStringUntilNextSpace( sLine );
   674 	string sUnload = GetStringUntilNextSpace( sLine );
   682 	if ( ! hexToDec( sUnload, ull ) )
   675 	if ( ! hexToDec( sUnload, ull ) )