SysprogsInstrumentingProfiler Namespace Reference

Namespaces

 Chronometer
 
 VendorSpecificWorkarounds
 

Classes

struct  InstrumentedFrame
 
class  InstrumentedFramePool
 
struct  ProfilerThreadRecord
 
struct  RunTimeReportRecord
 
class  SmallNumberCoder
 
class  SmallNumberDecoder
 

Typedefs

typedef unsigned ProfilerUIntPtr
 

Enumerations

enum  InstrumentingProfilerErrorCode {
  ipeNoError = 0, ipeFrameBufferOverflow, ipeStackPointerMismatch, ipeNoFrames,
  ipeScratchBufferOverflow, ipeInterfaceError, ipeOutOfThreadSlots, ipeStackNotAligned
}
 

Functions

void __attribute__ ((noinline)) RaiseError(InstrumentingProfilerErrorCode errorCode
 
 if (s_ThreadIDReportPending)
 
 for (const InstrumentedFrame *pFrame=pTopFrame;pFrame;pFrame=pFrame->pNextFrame)
 
 if ((int) unreportedFrames< 0) unreportedFrames
 
 if (!coder.WritePackedUIntPair(totalFrames-unreportedFrames, unreportedFrames)) RaiseError(ipeScratchBufferOverflow)
 
 while (unreportedFrames)
 
 if (!coder.WriteSmallUnsignedIntWithFlag(ProfilerTimeToUInt32(runTime), pTopFrame->FoldedTime!=0)) RaiseError(ipeScratchBufferOverflow)
 
 if (pTopFrame->FoldedTime) if(!coder.WriteSmallUnsignedInt(ProfilerTimeToUInt32(pTopFrame-> FoldedTime))) RaiseError(ipeScratchBufferOverflow)
 
 while (!SysprogsProfiler_WriteData(pdcInstrumentationProfilerNormalStream,(char *) coder.GetBuffer(), 0, coder.GetBuffer(), coder.GetOffset()))
 
 while (!SysprogsProfiler_WriteData(pdcRealTimeAnalysisStream,&rec, sizeof(rec), 0, 0)&&!g_FastSemihostingCallActive)
 
void SysprogsInstrumentingProfilerReturnHookImpl (void **pStack)
 
 __attribute__ ((always_inline)) static inline bool IsProcessStackMode(void)
 
void SysprogsInstrumentingProfilerHookImpl (void **pStack)
 
void ReportThreadCreated (void *newThread, const char *pThreadName)
 
void ReportThreadSwitch (void *newThread)
 

Variables

void uintptr_t pArg
 
class SysprogsInstrumentingProfiler::InstrumentedFramePool s_InstrumentedFramePool
 
unsigned FunctionFoldingThreshold
 
SmallNumberCoder coder (buffer, sizeof(buffer), 0, 0)
 
unsigned totalFrames = 0
 
unsigned unreportedFrames = -1
 
const InstrumentedFramepFrame = pTopFrame
 
void ProfilerTimeType runTime
 

Typedef Documentation

Enumeration Type Documentation

Enumerator
ipeNoError 
ipeFrameBufferOverflow 
ipeStackPointerMismatch 
ipeNoFrames 
ipeScratchBufferOverflow 
ipeInterfaceError 
ipeOutOfThreadSlots 
ipeStackNotAligned 

Function Documentation

void SysprogsInstrumentingProfiler::__attribute__ ( (noinline)  )
SysprogsInstrumentingProfiler::__attribute__ ( (always_inline)  )
SysprogsInstrumentingProfiler::for ( const InstrumentedFrame *  pFrame = pTopFrame; pFrame; pFrame = pFrame->pNextFrame)
SysprogsInstrumentingProfiler::if ( s_ThreadIDReportPending  )
SysprogsInstrumentingProfiler::if ( )
SysprogsInstrumentingProfiler::if ( !coder.  WritePackedUIntPairtotalFrames-unreportedFrames, unreportedFrames)
SysprogsInstrumentingProfiler::if ( !coder.  WriteSmallUnsignedIntWithFlagProfilerTimeToUInt32(runTime), pTopFrame->FoldedTime!=0)
SysprogsInstrumentingProfiler::if ( pTopFrame->  FoldedTime) -> FoldedTime))) RaiseError(ipeScratchBufferOverflow)
void SysprogsInstrumentingProfiler::ReportThreadCreated ( void *  newThread,
const char *  pThreadName 
)
void SysprogsInstrumentingProfiler::ReportThreadSwitch ( void *  newThread)
void SysprogsInstrumentingProfiler::SysprogsInstrumentingProfilerHookImpl ( void **  pStack)
void SysprogsInstrumentingProfiler::SysprogsInstrumentingProfilerReturnHookImpl ( void **  pStack)
SysprogsInstrumentingProfiler::while ( unreportedFrames  )
SysprogsInstrumentingProfiler::while ( SysprogsProfiler_WriteDatapdcInstrumentationProfilerNormalStream,(char *) coder.GetBuffer(),0,coder.GetBuffer(),coder.GetOffset())
SysprogsInstrumentingProfiler::while ( !SysprogsProfiler_WriteData(pdcRealTimeAnalysisStream,&rec, sizeof(rec), 0, 0)&&!  g_FastSemihostingCallActive)

Variable Documentation

SmallNumberCoder SysprogsInstrumentingProfiler::coder(buffer, sizeof(buffer), 0, 0)
unsigned SysprogsInstrumentingProfiler::FunctionFoldingThreshold
void uintptr_t SysprogsInstrumentingProfiler::pArg
Initial value:
= 0)
{
(void)errorCode;
(void)pArg;
asm("bkpt 255");
}
static ProfilerThreadRecord s_MainThreadState
void uintptr_t pArg
Definition: InstrumentingProfiler.cpp:223
const InstrumentedFrame* SysprogsInstrumentingProfiler::pFrame = pTopFrame
void ProfilerTimeType SysprogsInstrumentingProfiler::runTime
Initial value:
{
RunTimeReportRecord rec = {.Type = rtpFunctionRuntime, .Address = pTopFrame->FunctionAndReportFlag, .StartTimeDelta = (int)(pTopFrame->StartTime - LastReportedRealTimeWatchTime), .RunTime = ProfilerTimeToUInt32(runTime)}
Definition: InstrumentingProfiler.cpp:17
void ProfilerTimeType runTime
Definition: InstrumentingProfiler.cpp:364
class SysprogsInstrumentingProfiler::InstrumentedFramePool SysprogsInstrumentingProfiler::s_InstrumentedFramePool
unsigned SysprogsInstrumentingProfiler::totalFrames = 0
unsigned SysprogsInstrumentingProfiler::unreportedFrames = -1