kerneltest/e32utils/trace/btrace_analyse.cpp
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
equal deleted inserted replaced
256:c1f20ce4abcf 257:3e88ff8f41d5
   431 
   431 
   432 		CASE_CAT_NAME(EFastMutex);
   432 		CASE_CAT_NAME(EFastMutex);
   433 		CASE_CAT_NAME(EProfiling);
   433 		CASE_CAT_NAME(EProfiling);
   434 		CASE_CAT_NAME(ESymbianKernelSync);
   434 		CASE_CAT_NAME(ESymbianKernelSync);
   435 		CASE_CAT_NAME(EFlexibleMemModel);
   435 		CASE_CAT_NAME(EFlexibleMemModel);
   436 		CASE_CAT_NAME(EHSched);
       
   437 		CASE_CAT_NAME(ETest1);
   436 		CASE_CAT_NAME(ETest1);
   438 		CASE_CAT_NAME(ETest2);
   437 		CASE_CAT_NAME(ETest2);
   439 		default:
   438 		default:
   440 			break;
   439 			break;
   441 		}
   440 		}
   628 		CASE_CAT_NAME(EMemoryObjectIsUserStack);
   627 		CASE_CAT_NAME(EMemoryObjectIsUserStack);
   629 		CASE_CAT_NAME(EAddressSpaceId);
   628 		CASE_CAT_NAME(EAddressSpaceId);
   630 			}
   629 			}
   631 		break;
   630 		break;
   632 
   631 
   633 	case BTrace::EHSched:
       
   634 		switch((BTrace::THSched)aSubCategory)
       
   635 			{
       
   636 		CASE_CAT_NAME(ELbDone);
       
   637 			}
       
   638 		break;
       
   639 		}
   632 		}
   640 	return UnknownNames[aSubCategory];
   633 	return UnknownNames[aSubCategory];
   641 	}
   634 	}
   642 
   635 
   643 
   636 
  1395 
  1388 
  1396 	switch((BTrace::TThreadIdentification)aTrace.iSubCategory)
  1389 	switch((BTrace::TThreadIdentification)aTrace.iSubCategory)
  1397 		{
  1390 		{
  1398 	case BTrace::ENanoThreadCreate:
  1391 	case BTrace::ENanoThreadCreate:
  1399 		CHECK_TRACE_DATA_WORDS(1);
  1392 		CHECK_TRACE_DATA_WORDS(1);
  1400 		Thread::FindOrCreate(aTrace,0);
  1393 		thread = Thread::FindOrCreate(aTrace,0);
  1401 		break;
  1394 		break;
  1402 
  1395 
  1403 	case BTrace::ENanoThreadDestroy:
  1396 	case BTrace::ENanoThreadDestroy:
  1404 		CHECK_TRACE_DATA_WORDS(1);
  1397 		CHECK_TRACE_DATA_WORDS(1);
  1405 		thread = Thread::Find(aTrace,0);
  1398 		thread = Thread::Find(aTrace,0);
  1435 
  1428 
  1436 	case BTrace::EProcessName:
  1429 	case BTrace::EProcessName:
  1437 		CHECK_TRACE_DATA_WORDS(2);
  1430 		CHECK_TRACE_DATA_WORDS(2);
  1438 		if(aTrace.iData[0])
  1431 		if(aTrace.iData[0])
  1439 			{
  1432 			{
  1440 			Thread::FindOrCreate(aTrace,0);
  1433 			thread = Thread::FindOrCreate(aTrace,0);
  1441 			process = Process::Find(aTrace.iData[1]);
  1434 			process = Process::Find(aTrace.iData[1]);
  1442 			if(!process || (process->iNameLength && !process->IsName(aTrace.iData+2,aTrace.iDataSize-2*4)))
  1435 			if(!process || (process->iNameLength && !process->IsName(aTrace.iData+2,aTrace.iDataSize-2*4)))
  1443 				{
  1436 				{
  1444 				if(process)
  1437 				if(process)
  1445 					process->Destroy();
  1438 					process->Destroy();
  1455 		break;
  1448 		break;
  1456 
  1449 
  1457 	case BTrace::EThreadId:
  1450 	case BTrace::EThreadId:
  1458 		CHECK_TRACE_DATA_WORDS(2);
  1451 		CHECK_TRACE_DATA_WORDS(2);
  1459 		thread = Thread::FindOrCreate(aTrace,0);
  1452 		thread = Thread::FindOrCreate(aTrace,0);
  1460 		Process::FindOrCreate(aTrace,1);
  1453 		process = Process::FindOrCreate(aTrace,1);
  1461 		thread->iId = aTrace.iData[2];
  1454 		thread->iId = aTrace.iData[2];
  1462 		break;
  1455 		break;
  1463 
  1456 
  1464 	case BTrace::EProcessCreate:
  1457 	case BTrace::EProcessCreate:
  1465 		CHECK_TRACE_DATA_WORDS(1);
  1458 		CHECK_TRACE_DATA_WORDS(1);
  1466 		Process::FindOrCreate(aTrace,0);
  1459 		process = Process::FindOrCreate(aTrace,0);
  1467 		break;
  1460 		break;
  1468 
  1461 
  1469 	case BTrace::EProcessDestroy:
  1462 	case BTrace::EProcessDestroy:
  1470 		CHECK_TRACE_DATA_WORDS(1);
  1463 		CHECK_TRACE_DATA_WORDS(1);
  1471 		process = Process::FindOrCreate(aTrace,0);
  1464 		process = Process::FindOrCreate(aTrace,0);
  1892 		codeseg->iAllocatedMemory = 0; // clear this now because ECodeSegMemoryDeallocated comes after codeseg destroy
  1885 		codeseg->iAllocatedMemory = 0; // clear this now because ECodeSegMemoryDeallocated comes after codeseg destroy
  1893 		break;
  1886 		break;
  1894 
  1887 
  1895 	case BTrace::ECodeSegMapped:
  1888 	case BTrace::ECodeSegMapped:
  1896 		CHECK_TRACE_DATA_WORDS(2);
  1889 		CHECK_TRACE_DATA_WORDS(2);
  1897 		CodeSeg::FindOrCreate(aTrace,0);
  1890 		codeseg = CodeSeg::FindOrCreate(aTrace,0);
  1898 		Process::FindOrCreate(aTrace,1);
  1891 		Process::FindOrCreate(aTrace,1);
  1899 		break;
  1892 		break;
  1900 
  1893 
  1901 	case BTrace::ECodeSegUnmapped:
  1894 	case BTrace::ECodeSegUnmapped:
  1902 		CHECK_TRACE_DATA_WORDS(2);
  1895 		CHECK_TRACE_DATA_WORDS(2);
  2539 
  2532 
  2540 		}//report level
  2533 		}//report level
  2541 
  2534 
  2542 	printf("\n");
  2535 	printf("\n");
  2543 	}
  2536 	}
  2544 
       
  2545 
       
  2546 void PreProcessHSched(TraceRecord& aTrace)
       
  2547 	{
       
  2548 	switch((BTrace::THSched)aTrace.iSubCategory)
       
  2549 		{
       
  2550 		case BTrace::ELbDone:
       
  2551 			{
       
  2552 			CHECK_TRACE_DATA_WORDS(2);
       
  2553 			Thread::Find(aTrace, 0);
       
  2554 			break;
       
  2555 			}
       
  2556 		}
       
  2557 	}
       
  2558 
       
  2559 
       
  2560 
  2537 
  2561 //
  2538 //
  2562 // Trace processing
  2539 // Trace processing
  2563 //
  2540 //
  2564 
  2541 
  2745 		PreProcessFastMutex(aTrace); break;
  2722 		PreProcessFastMutex(aTrace); break;
  2746 	case BTrace::EProfiling:
  2723 	case BTrace::EProfiling:
  2747 		PreProcessProfiling(aTrace); break;
  2724 		PreProcessProfiling(aTrace); break;
  2748 	case BTrace::ESymbianKernelSync:
  2725 	case BTrace::ESymbianKernelSync:
  2749 		PreProcessSymbianKernelSync(aTrace); break;
  2726 		PreProcessSymbianKernelSync(aTrace); break;
  2750 	case BTrace::EHSched:
       
  2751 		PreProcessHSched(aTrace); break;
       
  2752 	default:
  2727 	default:
  2753 		break;
  2728 		break;
  2754 		}
  2729 		}
  2755 
  2730 
  2756 	// update trace ID...
  2731 	// update trace ID...