Ignore:
Timestamp:
Nov 13, 2001, 12:06:03 AM (24 years ago)
Author:
phaller
Message:

.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/perfview.cpp

    r7027 r7326  
    1 /* $Id: perfview.cpp,v 1.3 2001-10-12 03:48:06 phaller Exp $ */
     1/* $Id: perfview.cpp,v 1.4 2001-11-12 23:04:57 phaller Exp $ */
    22
    33/*
     
    1919// insert "nullified" dummies here to save space in the executable image
    2020void PerfView_Initialize(void) {}
    21 void PerfView_RegisterCall(char* pszFunctionName,
     21void PerfView_RegisterCall(char* pszCallerName,
     22                           char* pszFunctionName,
    2223                           unsigned long int nTicks) {}
    2324
     
    8788
    8889// register a call to a function
    89 void _Optlink PerfView_RegisterCall(char* pszFunctionName,
     90void _Optlink PerfView_RegisterCall(char* pszCallerName,
     91                                    char* pszFunctionName,
    9092                                    unsigned long int nTicks)
    9193{
     
    127129  if (nTicks > p->nMaximumTicks)
    128130    p->nMaximumTicks = nTicks;
     131
     132
     133  // add call-path tracing
     134  if (NULL != pszCallerName)
     135  {
     136    // build path name
     137    char szBuf[256];
     138    strcpy(szBuf, pszCallerName);
     139    strcat(szBuf, "->");
     140    strcat(szBuf, pszFunctionName);
     141   
     142    // check if that particular callpath is registered already
     143    PPERFVIEW_FUNCTION p2 = (PPERFVIEW_FUNCTION)pProfileMap->getElement(szBuf);
     144    if (NULL == p2)
     145    {
     146      // new function call
     147      p2 = (PPERFVIEW_FUNCTION)malloc( sizeof( PERFVIEW_FUNCTION ) );
     148      p2->pszFunctionName = strdup( szBuf );
     149      p2->nCalled = 0;
     150      p2->nTotalTicks = 0;
     151      p2->nMinimumTicks = 0xffffffff;
     152      p2->nMaximumTicks = 0;
     153     
     154      // add to the hashtable
     155      pProfileMap->addElement(p2->pszFunctionName, p2);
     156    }
     157   
     158    // update statistical data
     159    p2->nCalled++;
     160    p2->nTotalTicks += nTicks;
     161   
     162    if (nTicks < p2->nMinimumTicks)
     163      p2->nMinimumTicks = nTicks;
     164   
     165    if (nTicks > p2->nMaximumTicks)
     166      p2->nMaximumTicks = nTicks;
     167  }
    129168}
    130169
Note: See TracChangeset for help on using the changeset viewer.