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 tart |
367 // Header for process start |
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 ) ); |
|
520 // Count. |
518 // Count. |
521 string sNrOfLeaks( GetStringUntilNextSpace(sTempHandleLeak) ); |
519 string sNrOfLeaks( GetStringUntilNextSpace(sTempHandleLeak) ); |
|
520 |
|
521 // Name. |
|
522 //string sHandleLeakModule( GetStringUntilNextSpace( sTempHandleLeak ) ); |
|
523 string sHandleLeakModule( "Unknown" ); |
|
524 |
522 unsigned long iNrOfLeaks = _httoi( sNrOfLeaks.c_str() ); |
525 unsigned long iNrOfLeaks = _httoi( sNrOfLeaks.c_str() ); |
523 iTotalNrOfLeaks += iNrOfLeaks; |
526 iTotalNrOfLeaks += iNrOfLeaks; |
524 if( iNrOfLeaks ) |
527 if( iNrOfLeaks ) |
525 { |
528 { |
526 if( !bHandLeaksFound ) |
529 if( !bHandLeaksFound ) |
596 |
599 |
597 // Create module from this if project platform emulator |
600 // Create module from this if project platform emulator |
598 if ( _stricmp( "winscw", m_sProjectPlatform.c_str() ) == 0 ) |
601 if ( _stricmp( "winscw", m_sProjectPlatform.c_str() ) == 0 ) |
599 CreateWinscwModule( structDllInfo.sModuleName ); |
602 CreateWinscwModule( structDllInfo.sModuleName ); |
600 |
603 |
|
604 // Get dll start memory string address from line |
|
605 // Convert string address to real memory address |
|
606 structDllInfo.iStartAddress = |
|
607 _httoi( GetStringUntilNextSpace( sLine ).c_str() ); |
|
608 |
|
609 // Get dll end memory string address from line |
|
610 // Convert string address to real memory address |
|
611 structDllInfo.iEndAddress = |
|
612 _httoi( |
|
613 GetStringUntilNextSpace( sLine ).c_str() ); |
|
614 |
601 if ( m_iDataVersion >= AT_DLL_TIMESTAMP_DATA_VERSION ) |
615 if ( m_iDataVersion >= AT_DLL_TIMESTAMP_DATA_VERSION ) |
602 { |
616 { |
603 // Pickup module loading time. |
617 // Pickup module loading time. |
604 string sLoadTime = GetStringUntilNextSpace( sLine ); |
618 string sLoadTime = GetStringUntilNextSpace( sLine ); |
605 unsigned long long ull; |
619 unsigned long long ull; |
606 if ( hexToDec( sLoadTime, ull ) ) |
620 if ( hexToDec( sLoadTime, ull ) ) |
607 structDllInfo.iLoadTime = ull; |
621 structDllInfo.iLoadTime = ull; |
608 } |
622 } |
609 |
623 |
610 // Get dll start memory string address from line |
|
611 // Convert string address to real memory address |
|
612 structDllInfo.iStartAddress = |
|
613 _httoi( GetStringUntilNextSpace( sLine ).c_str() ); |
|
614 |
|
615 // Get dll end memory string address from line |
|
616 // Convert string address to real memory address |
|
617 structDllInfo.iEndAddress = |
|
618 _httoi( |
|
619 GetStringUntilNextSpace( sLine ).c_str() ); |
|
620 |
|
621 // Is module already loaded, if not add it to list. |
624 // Is module already loaded, if not add it to list. |
622 bool bFound = false; |
625 bool bFound = false; |
623 for( vector<DLL_LOAD_INFO>::iterator it = m_vDllLoadModList.begin(); |
626 for( vector<DLL_LOAD_INFO>::iterator it = m_vDllLoadModList.begin(); |
624 it != m_vDllLoadModList.end() ; it++ ) |
627 it != m_vDllLoadModList.end() ; it++ ) |
625 { |
628 { |
666 GetStringUntilNextSpace( sLine ); |
669 GetStringUntilNextSpace( sLine ); |
667 |
670 |
668 // Get module name |
671 // Get module name |
669 string sModuleName = GetStringUntilNextSpace( sLine ); |
672 string sModuleName = GetStringUntilNextSpace( sLine ); |
670 ChangeToLower( sModuleName ); |
673 ChangeToLower( sModuleName ); |
|
674 |
|
675 // skip adresses - not currently used |
|
676 GetStringUntilNextSpace( sLine ); |
|
677 GetStringUntilNextSpace( sLine ); |
671 |
678 |
672 // Unload time |
679 // Unload time |
673 unsigned long long ull; |
680 unsigned long long ull; |
674 string sUnload = GetStringUntilNextSpace( sLine ); |
681 string sUnload = GetStringUntilNextSpace( sLine ); |
675 if ( ! hexToDec( sUnload, ull ) ) |
682 if ( ! hexToDec( sUnload, ull ) ) |