BTrace Class Reference

class BTrace

Class for handling fast tracing.

A trace record consists of three parts: a header, header extensions, and the trace data itself.

The header consists of four bytes containing:

  1. Size of the record in bytes. (Maximum value is KMaxBTraceRecordSize.)

  2. Flags. See enum TFlags.

  3. Category. Category value from enum BTrace::TCategory .

  4. Sub-category. The meaning of this is dependent on the value of Category.

When trace records are stored in memory they are stored word (32 bit) aligned. Therefore the size must be rounded up to a multiple of four when calculating the address of the next record. E.g.
        TUint8* record; // pointer to trace record
	TInt size = record[BTrace::ESizeIndex];
	record += (size+3)&~3; // move record pointer on to next record.
       
The NextRecord() method is provided to do this operation.

Following the header are optionally a number of 32 bit 'header extension' values. These are present in the order shown below but only exist if the appropriate flag bit is set in the Header.

  1. Header2. Contains flag values from enum Flags2. This value is only present if the EHeader2Present flag is set.

  2. Timestamp. A timestamp value indicating when the trace was generated. The format and resolution of this value are platform-dependent, but typically will contain the same values as would be returned by User::FastCounter() or NKern::FastCounter(). This value is only present if the ETimestampPresent flag is set.

  3. Timestamp2. Additional timestamp information. E.g. the most significant half of a 64bit timestamp value. Note, it is valid for a Timestamp2 value to be present even if the previous Timestamp is absent. This value is only present if the ETimestamp2Present flag is set.

  4. Context ID. This value indicates the context in which the trace was generated. The meaning of the id is dependent on the contents of the two least significant bits:
    • 00 indicates the value is the address of the NThread object for the currently executing thread.

    • 01 indicates Fast Interrupt (FIQ) context. Other bits of the value are currently reserved for future use.

    • 10 indicates Interrupt (IRQ) context. Other bits of the value are currently reserved for future use.

    • 11 indicates Immediate Delayed Function Call (IDFC) context. Other bits of the value are currently reserved for future use.

    This value is only present if the EContextIdPresent flag is set.
  5. Program Counter. This is the memory address of the instruction after the location the trace was output. This value is only present if the EPcPresent flag is set.

  6. Extra. An extra value used for different purposes depending on the trace type. This value is only present if the EExtraPresent flag is set.

Following the header extensions are 0 or more bytes of trace data specified when the trace was output.

To output a trace, the following macros can be used:
  • BTrace0

  • BTrace4

  • BTrace8

  • BTrace12

  • BTraceN

  • BTraceBig

  • BTracePc0

  • BTracePc4

  • BTracePc8

  • BTracePc12

  • BTracePcN

  • BTracePcBig

  • BTraceContext0

  • BTraceContext4

  • BTraceContext8

  • BTraceContext12

  • BTraceContextN

  • BTraceContextBig

  • BTraceContextPc0

  • BTraceContextPc4

  • BTraceContextPc8

  • BTraceContextPc12

  • BTraceContextPcN

  • BTraceContextPcBig

Whenever a trace is output, the trace handler is called with the arguments specified. See typedef THandler and SetHandler().

Each tracing category has a filter bit, which if set to zero means that traces in that category are discarded, see SetFilter(). This filtering is performed before the trace handler is called. This filter may also be initialised from boot time by using the 'btrace' keyword in an OBY file used to build a ROM image.

Traces may also be additionally sent through a second level of filtering. This examines the first 32 bits of data in the trace and if this value isn't present in the list maintained in the secondary filter, the trace is discarded. The contents of the secondary filter are set using the SetFilter2 methods.

Values used for secondary filtering must be Symbian Unique Identifiers (UIDs) allocated using the normal UID allocation process. Note, the following non-valid UID value ranges are reserved.
  • 0x00000000..0x007fffff Reserved for platform specific use.

  • 0x00800000..0x00ffffff Reserved for use by Symbian.

To generate traces which are to be processed by the secondary filter, the following macros can be used:

  • BTraceFiltered4

  • BTraceFiltered8

  • BTraceFiltered12

  • BTraceFilteredN

  • BTraceFilteredBig

  • BTraceFilteredPc4

  • BTraceFilteredPc8

  • BTraceFilteredPc12

  • BTraceFilteredPcN

  • BTraceFilteredPcBig

  • BTraceFilteredContext4

  • BTraceFilteredContext8

  • BTraceFilteredContext12

  • BTraceFilteredContextN

  • BTraceFilteredContextBig

  • BTraceFilteredContextPc4

  • BTraceFilteredContextPc8

  • BTraceFilteredContextPc12

  • BTraceFilteredContextPcN

  • BTraceFilteredContextPcBig

Traces generated using the above methods will be filtered twice; once using the primary filter which checks the trace's category, and once using the secondary filter which checks the 32 bit UID value at the start of the trace data. Therefore the trace must pass both filter checks for it to be sent to the trace handler for output.

Nested Classes and Structures

Public Member Functions
IMPORT_C TBool CheckFilter ( TUint32 )
IMPORT_C TBool CheckFilter2 ( TUint32 , TUint32 )
TBool DoOutBig ( TUint32 , TUint32 , const TAny *, TInt , TUint32 , TUint32 )
void Init0 ()
TBool IsSupported ( TUint )
TUint8 * NextRecord ( TAny *)
IMPORT_C TBool Out ( TUint32 , TUint32 , TUint32 , TUint32 )
IMPORT_C TBool OutBig ( TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutFiltered ( TUint32 , TUint32 , TUint32 , TUint32 )
IMPORT_C TBool OutFilteredBig ( TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutFilteredN ( TUint32 , TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutFilteredNX ( TUint32 , TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutFilteredPcFormatBig ( TUint32 , TUint32 , TUint32 , TUint16 , const TAny *, TInt )
IMPORT_C TBool OutFilteredX ( TUint32 , TUint32 , TUint32 , TUint32 )
IMPORT_C TBool OutN ( TUint32 , TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutNX ( TUint32 , TUint32 , TUint32 , const TAny *, TInt )
IMPORT_C TBool OutX ( TUint32 , TUint32 , TUint32 , TUint32 )
Public Member Enumerations
enum TCategory {
ERDebugPrintf  = 0, EKernPrintf  = 1, EPlatsecPrintf  = 2, EThreadIdentification  = 3, ECpuUsage  = 4, EKernPerfLog  = 5, EClientServer  = 6, ERequests  = 7, EChunks  = 8, ECodeSegs  = 9, EPaging  = 10, EThreadPriority  = 11, EPagingMedia  = 12, EKernelMemory  = 13, EHeap  = 14, EMetaTrace  = 15, ERamAllocator  = 16, EFastMutex  = 17, EProfiling  = 18, EResourceManager  = 19, EResourceManagerUs  = 20, ERawEvent  = 21, EUsb  = 22, ESymbianKernelSync  = 23, EFlexibleMemModel  = 24, EIic  = 25, EPlatformSpecificFirst  = 128, EPlatformSpecificLast  = 191, ESymbianExtentionsFirst  = 192, ESymbianExtentionsLast  = 253, ETest1  = 254, ETest2  = 255
}
enum TChunks {
EChunkCreated , EChunkInfo , EChunkDestroyed , EChunkMemoryAllocated , EChunkMemoryDeallocated , EChunkMemoryAdded , EChunkMemoryRemoved , EChunkOwner
}
enum TClientServer {
EServerCreate , EServerDestroy , ESessionAttach , ESessionDetach , EMessageSend , EMessageReceive , EMessageComplete
}
enum TCodeSegs {
ECodeSegCreated , ECodeSegInfo , ECodeSegDestroyed , ECodeSegMapped , ECodeSegUnmapped , ECodeSegMemoryAllocated , ECodeSegMemoryDeallocated
}
enum TCpuUsage {
EIrqStart , EIrqEnd , EFiqStart , EFiqEnd , EIDFCStart , EIDFCEnd , ENewThreadContext
}
enum TFastMutex { EFastMutexWait , EFastMutexSignal , EFastMutexFlash , EFastMutexName , EFastMutexBlock }
enum TFlags {
EHeader2Present  = 1<<0, ETimestampPresent  = 1<<1, ETimestamp2Present  = 1<<2, EContextIdPresent  = 1<<3, EPcPresent  = 1<<4, EExtraPresent  = 1<<5, ERecordTruncated  = 1<<6, EMissingRecord  = 1<<7
}
enum TFlags2 { EMultipartFlagMask  = 3<<0, ECpuIdMask  = 0xfff<<20 }
enum TFlexibleMemModel {
EMemoryObjectCreate , EMemoryObjectDestroy , EMemoryMappingCreate , EMemoryMappingDestroy , EMemoryObjectIsChunk , EMemoryObjectIsCodeSeg , EMemoryObjectIsProcessStaticData , EMemoryObjectIsDllStaticData , EMemoryObjectIsSupervisorStack , EMemoryObjectIsUserStack , EAddressSpaceId
}
enum THeaderStructure { ESizeIndex  = 0, EFlagsIndex  = 1, ECategoryIndex  = 2, ESubCategoryIndex  = 3 }
enum THeap {
EHeapCreate , EHeapChunkCreate , EHeapAlloc , EHeapReAlloc , EHeapFree , EHeapAllocFail , EHeapReAllocFail , EHeapCorruption , EHeapCallStack
}
enum TIic {
ERegisterChansStartPsl  = 0, ERegisterChansStartPil  = 1, ERegisterChansEndPil  = 2, ERegisterChansEndPsl  = 3, EDeRegisterChanStartPsl  = 4, EDeRegisterChanStartPil  = 5, EDeRegisterChanEndPil  = 6, EDeRegisterChanEndPsl  = 7, EMQTransSyncStartPil  = 8, EMQTransSyncEndPil  = 9, EMQTransAsyncStartPil  = 10, EMQTransAsyncEndPil  = 11, EMCancelTransStartPil  = 12, EMCancelTransEndPil  = 13, EMProcessTransStartPil  = 14, EMProcessTransStartPsl  = 15, EMProcessTransEndPsl  = 16, EMProcessTransEndPil  = 17, ESCaptChanSyncStartPil  = 18, ESCaptChanSyncStartPsl  = 19, ESCaptChanSyncEndPsl  = 20, ESCaptChanSyncEndPil  = 21, ESCaptChanASyncStartPil  = 22, ESCaptChanASyncStartPsl  = 23, ESCaptChanASyncEndPsl  = 24, ESCaptChanASyncEndPil  = 25, ESRelChanStartPil  = 26, ESRelChanStartPsl  = 27, ESRelChanEndPsl  = 28, ESRelChanEndPil  = 29, ESRegRxBufStartPil  = 30, ESRegRxBufStartPsl  = 31, ESRegRxBufEndPsl  = 32, ESRegRxBufEndPil  = 33, ESRegTxBufStartPil  = 34, ESRegTxBufStartPsl  = 35, ESRegTxBufEndPsl  = 36, ESRegTxBufEndPil  = 37, ESNotifTrigStartPil  = 38, ESNotifTrigStartPsl  = 39, ESNotifTrigEndPsl  = 40, ESNotifTrigEndPil  = 41, EMSStatExtStartPil  = 42, EMSStatExtEndPil  = 43, EMStatExtStartPil  = 44, EMStatExtStartPsl  = 45, EMStatExtEndPsl  = 46, EMStatExtEndPil  = 47, ESStatExtStartPil  = 48, ESStatExtStartPsl  = 49, ESStatExtEndPsl  = 50, ESStatExtEndPil  = 51
}
enum TKernelMemory {
EKernelMemoryInitialFree , EKernelMemoryCurrentFree , EKernelMemoryMiscAlloc , EKernelMemoryMiscFree , EKernelMemoryDemandPagingCache , EKernelMemoryDrvPhysAlloc , EKernelMemoryDrvPhysFree
}
enum TMetaTrace { EMetaTraceTimestampsInfo , EMetaTraceMeasurementStart , EMetaTraceMeasurementEnd , EMetaTraceFilterChange }
enum TMultiPart { EMultipartFirst  = 1, EMultipartMiddle  = 2, EMultipartLast  = 3 }
enum TPaging {
EPagingPageInBegin , EPagingPageInUnneeded , EPagingPageInROM , EPagingPageOutROM , EPagingPageInFree , EPagingPageOutFree , EPagingRejuvenate , EPagingPageNop , EPagingPageLock , EPagingPageUnlock , EPagingPageOutCache , EPagingPageInCode , EPagingPageOutCode , EPagingMapCode , EPagingAged , EPagingDecompressStart , EPagingDecompressEnd , EPagingMemoryModel , EPagingChunkDonatePage , EPagingChunkReclaimPage , EPagingPageIn , EPagingPageOut , EPagingMapPage , EPagingDonatePage , EPagingReclaimPage , EPagingAgedClean , EPagingAgedDirty , EPagingPageTableAlloc
}
enum TPagingMedia {
EPagingMediaLocMedPageInBegin , EPagingMediaLocMedPageInPagedIn , EPagingMediaLocMedPageInDeferred , EPagingMediaLocMedPageInDeferredReposted , EPagingMediaLocMedPageInReDeferred , EPagingMediaLocMedPageInQuietlyDeferred , EPagingMediaLocMedFragmentBegin , EPagingMediaLocMedFragmentEnd , EPagingMediaPagingMedDrvBegin , EPagingMediaMedDrvWriteBack , EPagingMediaMedDrvOnHold , EPagingMediaMedDrvRead , EPagingMediaLocMedPageOutBegin , EPagingMediaLocMedDeleteNotifyBegin
}
enum TProfiling { ECpuFullSample  = 0, ECpuOptimisedSample , ECpuIdfcSample , ECpuNonSymbianThreadSample }
enum TRamAllocator {
ERamAllocZoneCount , ERamAllocZoneConfig , ERamAllocBootAllocation , ERamAllocBootAllocationEnd , ERamAllocZoneFlagsModified , ERamAllocClaimRam , ERamAllocMarkAllocated , ERamAllocContiguousRam , ERamAllocFreePage , ERamAllocFreePhysical , ERamAllocRamPages , ERamAllocFreePages , ERamAllocRamPagesEnd , ERamAllocFreePagesEnd , ERamAllocChangePageType , ERamAllocZoneContiguousRam , ERamAllocZoneRamPagesEnd , ERamAllocClaimZone
}
enum TRawEventTrace {
ESetEvent  = 1, ESetTipEvent , ESetTiltEvent , ESetRotationtEvent , ESetPointerNumberEvent , EUserAddEvent , EKernelAddEvent
}
enum TRequests { ERequestComplete }
enum TResourceManager {
ERegisterResource  = 0, ERegisterClient , EDeRegisterClient , ESetResourceStateStart , ESetResourceStateEnd , EPostNotificationRegister , EPostNotificationDeRegister , EPostNotificationSent , ECallbackComplete , EMemoryUsage , EGetResourceStateStart , EGetResourceStateEnd , ECancelLongLatencyOperation , EBooting , EPslChangeResourceStateStart , EPslChangeResourceStateEnd , EPslGetResourceStateStart , EPslGetResourceStateEnd , EPslResourceCreate , ERegisterStaticResourceWithDependency , ERegisterDynamicResource , EDeRegisterDynamicResource , ERegisterResourceDependency , EDeRegisterResourceDependency
}
enum TResourceManagerUs {
EOpenChannelUsStart  = 0, EOpenChannelUsEnd , ERegisterClientUsStart , ERegisterClientUsEnd , EDeRegisterClientUsStart , EDeRegisterClientUsEnd , EGetResourceStateUsStart , EGetResourceStateUsEnd , ESetResourceStateUsStart , ESetResourceStateUsEnd , ECancelGetResourceStateUsStart , ECancelGetResourceStateUsEnd , ECancelSetResourceStateUsStart , ECancelSetResourceStateUsEnd
}
enum TSymbianKernelSync {
ESemaphoreCreate  = 0x00, ESemaphoreDestroy  = 0x01, ESemaphoreAcquire  = 0x02, ESemaphoreRelease  = 0x03, ESemaphoreBlock  = 0x04, EMutexCreate  = 0x10, EMutexDestroy  = 0x11, EMutexAcquire  = 0x12, EMutexRelease  = 0x13, EMutexBlock  = 0x14, ECondVarCreate  = 0x20, ECondVarDestroy  = 0x21, ECondVarBlock  = 0x22, ECondVarWakeUp  = 0x23, ECondVarSignal  = 0x24, ECondVarBroadcast  = 0x25
}
enum TThreadIdentification {
ENanoThreadCreate , ENanoThreadDestroy , EThreadCreate , EThreadDestroy , EThreadName , EProcessName , EThreadId , EProcessCreate , EProcessDestroy
}
enum TThreadPriority { ENThreadPriority  = 0, EDThreadPriority  = 1, EProcessPriority  = 2 }
Public Member Type Definitions
typedef TBool (* TBTrace1
typedef TBool (* TBTrace2
typedef TBool (* TBTrace3
Public Attributes
TUint32 BigTraceId

Member Functions Documentation

CheckFilter(TUint32)

IMPORT_C TBool CheckFilter ( TUint32 aCategory ) [static]

Check the trace filters to see if a trace with a given category would be output.

Parameters

TUint32 aCategory A category value from enum BTrace::TCategory. Only the 8 least significant bits in this value are used; other bits are ignored.

CheckFilter2(TUint32, TUint32)

IMPORT_C TBool CheckFilter2 ( TUint32 aCategory,
TUint32 aUid
) [static]

Check the trace filters to see if a trace with a given category and filter UID would be output.

Parameters

TUint32 aCategory A category value from enum BTrace::TCategory. Only the 8 least significant bits in this value are used; other bits are ignored.
TUint32 aUid A UID to filter on.

DoOutBig(TUint32, TUint32, const TAny *, TInt, TUint32, TUint32)

TBool DoOutBig ( TUint32 a0,
TUint32 a1,
const TAny * aData,
TInt aDataSize,
TUint32 aContext,
TUint32 aPc
) [static]

Parameters

TUint32 a0
TUint32 a1
const TAny * aData
TInt aDataSize
TUint32 aContext
TUint32 aPc

Init0()

void Init0 ( ) [static]

IsSupported(TUint)

TBool IsSupported ( TUint aCategory ) [static]

Parameters

TUint aCategory

NextRecord(TAny *)

TUint8 * NextRecord ( TAny * aCurrentRecord ) [static, inline]

Calculate the address of the next trace record.

Parameters

TAny * aCurrentRecord A pointer to a trace record.

Out(TUint32, TUint32, TUint32, TUint32)

IMPORT_C TBool Out ( TUint32 a0,
TUint32 a1,
TUint32 a2,
TUint32 a3
) [static]

Common function for BTrace macros.

OutBig(TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutBig ( TUint32 a0,
TUint32 a1,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
const TAny * aData
TInt aDataSize

OutFiltered(TUint32, TUint32, TUint32, TUint32)

IMPORT_C TBool OutFiltered ( TUint32 a0,
TUint32 a1,
TUint32 a2,
TUint32 a3
) [static]

Common function for BTrace macros.

OutFilteredBig(TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutFilteredBig ( TUint32 a0,
TUint32 a1,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
const TAny * aData
TInt aDataSize

OutFilteredN(TUint32, TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutFilteredN ( TUint32 a0,
TUint32 a1,
TUint32 a2,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
TUint32 a2
const TAny * aData
TInt aDataSize

OutFilteredNX(TUint32, TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutFilteredNX ( TUint32 a0,
TUint32 a1,
TUint32 a2,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
TUint32 a2
const TAny * aData
TInt aDataSize

OutFilteredPcFormatBig(TUint32, TUint32, TUint32, TUint16, const TAny *, TInt)

IMPORT_C TBool OutFilteredPcFormatBig ( TUint32 aHeader,
TUint32 aModuleUid,
TUint32 aPc,
TUint16 aFormatId,
const TAny * aData,
TInt aDataSize
) [static]

Common function for UTrace calls, that need to set both program counter and format id as well as the normal parameters.

Parameters

TUint32 aHeader The header (a0) of the trace record.
TUint32 aModuleUid A uid (a1) to filter on
TUint32 aPc A program counter
TUint16 aFormatId A format id
const TAny * aData The data to output
TInt aDataSize The size of the data

OutFilteredX(TUint32, TUint32, TUint32, TUint32)

IMPORT_C TBool OutFilteredX ( TUint32 a0,
TUint32 a1,
TUint32 a2,
TUint32 a3
) [static]

Common function for BTrace macros.

OutN(TUint32, TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutN ( TUint32 a0,
TUint32 a1,
TUint32 a2,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
TUint32 a2
const TAny * aData
TInt aDataSize

OutNX(TUint32, TUint32, TUint32, const TAny *, TInt)

IMPORT_C TBool OutNX ( TUint32 a0,
TUint32 a1,
TUint32 a2,
const TAny * aData,
TInt aDataSize
) [static]

Common function for BTrace macros.

Parameters

TUint32 a0
TUint32 a1
TUint32 a2
const TAny * aData
TInt aDataSize

OutX(TUint32, TUint32, TUint32, TUint32)

IMPORT_C TBool OutX ( TUint32 a0,
TUint32 a1,
TUint32 a2,
TUint32 a3
) [static]

Common function for BTrace macros.

Member Enumerations Documentation

Enum TCategory

Enumeration of trace categories.

Enumerators

ERDebugPrintf = 0

Trace generated by all calls to RDebug::Printf .

The first 4 bytes of trace data contain the thread ID, RThread::Id() , for the thread which caused this trace to be emitted. If the trace wasn't generated in thread context, this id has the value KNullThreadId.

Subsequent bytes of data contain the ASCII text for the formatted string generated by Kern::Printf.

These traces also contain a context ID, i.e. the EContextIdPresent flag is set and a context ID value is present in the extended header.

If the trace text doesn't fit completely into one trace record, then a multipart trace is generated. See enum TMultiPart.

EKernPrintf = 1

Trace generated by all calls to Kern::Printf. Trace records in this category have the same structure as ERDebugPrintf.

EPlatsecPrintf = 2

Trace generated by platform security diagnostic messages. Trace records in this category have the same structure as ERDebugPrintf.

EThreadIdentification = 3

Trace generated for the purpose of associating thread context ids with the textual names of threads. These traces are usually generated when a thread is created, renamed or destroyed.

If Prime is called with this category, traces will be generated for all threads currently extant.

enum TThreadIdentification

ECpuUsage = 4

Trace generated when the CPU usage changes state, e.g. at thread context switch or during interrupt and DFC processing.

The purpose of this trace category is to profile CPU usage.

enum TCpuUsage

EKernPerfLog = 5

Category used for profiling device drivers, kernel extensions etc. Used by PERF_LOG macro. 9.3

EClientServer = 6

Trace generated when client-server activity takes place such as server creation, session management, message handling, etc.

If Prime is called with this category, traces will be generated for all servers currently running and their sessions.

ERequests = 7

Trace generated on thread request completion.

EChunks = 8

Trace generated when chunks are created and destroyed, and when memory is committed and decommitted to and from chunks.

If Prime is called with this category, traces will be generated for all chunks currently extant.

TChunks

ECodeSegs = 9

Trace generated when code segments are created and destroyed, mapped into out of processes, and when memory is committed and decommitted to and from them.

If Prime is called with this category, traces will be generated for all code segments currently extant.

TCodeSegs

EPaging = 10

Trace generated by Demand Paging. 9.3

EThreadPriority = 11

Trace generated when thread and process priorities are modified, whether directly or through priority inheritance, aging or other mechanisms used by the kernel.

The purpose of this category is to enable system-wide study of thread priority usage.

If Prime is called with this category, traces will be generated for all threads currently extant.

enum TThreadPriority 9.3

EPagingMedia = 12

Trace generated by processing Paging requests in the Media subsystem and Media drivers. 9.3

EKernelMemory = 13

Trace generated by the kernel for memory regions which don't belong to any chunk. enum TKernelMemory 9.4

EHeap = 14

Trace generated by user-mode heap usage.

Unlike other trace categories, capturing heap trace involves an additional step depending on how much trace is required. To enable heap trace for a single process from the moment it starts, add the following line to the .exe's project (.mmp) file:

firstlib eexe_instrumented_heap.lib

This overrides the build tools default implicit link (for .exe projects) against eexe.lib.

Alternatively, to enable heap trace for all processes at once you can enable the KUSERHEAPTRACE bit (#96) of the kernel trace flags. You can set this flag either at ROM-building time (look for the 'kerneltrace' line generally in <platform>.iby) or at runtime by running the following at the Eshell command prompt:

trace 0 0 1

Note that changing this flag at runtime only affects processes created after the flag is set or unset. It will not affect running processes.

enum THeap 9.4

EMetaTrace = 15

Meta trace. Trace that is only useful to programs which use or display BTrace-based data. enum TMetaTrace 9.4

ERamAllocator = 16

Trace generated by the ram allocator to allow the physical layout of RAM to be tracked.

EFastMutex = 17

Trace generated by the Fast Mutex in the Nkern.

EProfiling = 18

Trace generated by any sampling profiler. enum TProfiling

EResourceManager = 19

Trace generated by Power Resource Manager. 9.5

EResourceManagerUs = 20

Trace generated by Power Resource Manager User-Side API. 9.5

ERawEvent = 21

Trace generated by Raw Event subsystem APIs enum TRawEventTrace 9.5

EUsb = 22

Trace generated by USB communications (Client, Host and OTG) where use of standard logging (conditional Kern::Printf() calls) is sufficiently time-consuming that the required device timings mandated by the core USB standards cannot be achieved 9.5

ESymbianKernelSync = 23

Trace generated by Symbian OS kernel synchronization objects. 9.5

EFlexibleMemModel = 24

Trace generated by the flexible memory model.

EIic = 25

Trace generated by IIC bus. 9.6

EPlatformSpecificFirst = 128

First category value in the range reserved for platform specific use; the end of this range is EPlatformSpecificLast . Symbian's code will not generate any traces with categories in this range.

It is strongly recommended that platforms reserve the first half of this range (128..143) for definition and use by base-port (kernel-side) code. Any general trace framework built on top of BTrace APIs should use the second half of the range. This allows fast (primary filtered only) BTrace categories to be used in device drivers and other base-port code, without clashing with more general trace frameworks implemented for application layer code.

EPlatformSpecificLast = 191

Last category value in the range reserved for platform specific use. EPlatformSpecificFirst

ESymbianExtentionsFirst = 192

First category value in the range reserved for Symbian tools and future trace framework implementations; the end of this range is ESymbianExtentionsLast .

ESymbianExtentionsLast = 253

Last category value in the range reserved for Symbian tools and future trace framework implementations. ESymbianExtentionsFirst

ETest1 = 254

Used for testing purposes.

This may be used for ad-hoc testing purposes, e.g. special builds of components with tracing enabled for diagnostic purposes.

This category is also used by the E32 BTrace unit tests. Test

ETest2 = 255

Used for testing purposes.

This may be used for ad-hoc testing purposes, e.g. special builds of components with tracing enabled for diagnostic purposes.

This category is also used by the E32 BTrace unit tests. Test

Enum TChunks

Enumeration of sub-category values for trace category EChunks. EChunks

Enumerators

EChunkCreated

Trace output when a chunk is created.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the maximum size of the chunk.

  • The ASCII name of the chunk.

EChunkInfo

Trace output when a chunk is created containing extra chunk information.

Note that the meaning of the data in this trace is different between memory models, and may change without warning.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the chunk type.

  • 4 bytes containing the chunk's attributes.

EChunkDestroyed

Trace output when a chunk is destroyed.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*)

EChunkMemoryAllocated

Trace output when memory is allocated and committed to a chunk.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the offset into the chunk.

  • 4 bytes containing the size of the memory committed.

EChunkMemoryDeallocated

Trace output when memory is decommitted from a chunk and deallocated.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the offset into the chunk.

  • 4 bytes containing the size of the memory decommitted.

EChunkMemoryAdded

Trace output when un-owned memory is committed to a chunk.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the offset into the chunk.

  • 4 bytes containing the size of the memory committed.

EChunkMemoryRemoved

Trace output when un-owned memory is decommitted to a chunk.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the offset into the chunk.

  • 4 bytes containing the size of the memory decommitted.

EChunkOwner

Trace to indicate the owning process of a chunk - only for local (private) chunks.

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the process id of the owner (a DProcess*).

Enum TClientServer

9.3

Enumerators

EServerCreate

Trace generated whenever a server is created and during prime.

Trace data format:
  • 4 bytes containing the server id (a DServer*).

  • 4 bytes containing the owning thread pointer (a DThread*).

  • Remaining data is the ASCII name of the server.

EServerDestroy

Trace generated whenever a server is destroyed.

Trace data format:
  • 4 bytes containing the server id (a DServer*).

ESessionAttach

Trace generated whenever a new session is attached to a server and during prime. I.e. a new session has been created.

Trace data format:
  • 4 bytes containing the session id (a DSession*).

  • 4 bytes containing the server id (a DServer*).

  • 4 bytes containing the owner id (a DObject*).

The context id (NThread*) in this trace is that of the thread creating the session (apart from during prime when it is NULL).

ESessionDetach

Trace generated whenever a server session is detached from a server. I.e. a session has been closed.

Trace data format:
  • 4 bytes containing the session id (a DSession*).

  • 4 bytes containing the reasons (error code) for the session being closed.

EMessageSend

Trace generated whenever a new message is sent to a server.

Trace data format:
  • 4 bytes containing the message handle.

  • 4 bytes containing the iFunction value for the message.

  • 4 bytes containing the session id (a DSession*).

The context id (NThread*) in this trace is that of the thread which sent the message.

EMessageReceive

Trace generated when a server receives a new message.

Trace data format:
  • 4 bytes containing the message handle.

EMessageComplete

Trace generated whenever a message is completed using RMessagePtr2::Complete .

Trace data format:
  • 4 bytes containing the message handle.

  • 4 bytes containing the completion reason, or object handle, value. (The object handle value is that which is delivered to the sender of the message, not that supplied by the server actually completing the request.)

The context id (NThread*) in this trace is that of the thread which completed the message.

Enum TCodeSegs

Enumeration of sub-category values for trace category ECodeSegs. ECodeSegs

Enumerators

ECodeSegCreated

Trace output when a code segment is created to associate a code segment id with a filename.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • The ASCII filename.

ECodeSegInfo

Trace output when a code segment is created.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • 4 bytes containing the attributes.

  • 4 bytes containing the code base address (.text).

  • 4 bytes containing the size of the code section (.text).

  • 4 bytes containing the base address of the constant data section (.rodata).

  • 4 bytes containing the size of the constant data section (.rodata).

  • 4 bytes containing the base address of the initialised data section (.data).

  • 4 bytes containing the size of the initialised data section (.data).

  • 4 bytes containing the base address of the uninitialised data section (.bss).

  • 4 bytes containing the size of the uninitialised data section (.bss).

ECodeSegDestroyed

Trace output when a code segment is destroyed.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

ECodeSegMapped

Trace output when a code segment is mapped into a process.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • 4 bytes containing the process id (a DProcess*).

ECodeSegUnmapped

Trace output when a code segment is unmapped from a process.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • 4 bytes containing the process id (a DProcess*).

ECodeSegMemoryAllocated

Trace output when memory is allocated to a code segment.

Under the multiple memory model, code segments for RAM-loaded user code own the RAM pages the code occupies. The pages are not owned by any chunk, but are mapped into the code chunk of each process that uses the code segment.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • 4 bytes containing the size of the memory allocated.

ECodeSegMemoryDeallocated

Trace output when memory is deallocated from a code segment.

Under the multiple memory model, code segments for RAM-loaded user code own the RAM pages the code occupies. The pages are not owned by any chunk, but are mapped into the code chunk of each process that uses the code segment.

Trace data format:
  • 4 bytes containing the code segment id (a DCodeSeg*).

  • 4 bytes containing the size of the memory deallocated.

Enum TCpuUsage

Enumeration of sub-category values for trace category ECpuUsage. ECpuUsage

Enumerators

EIrqStart

Trace output at start of Interrupt (IRQ) dispatch.

On platforms which support nested interrupts, traces for these will also be nested.

EIrqEnd

Trace output at end of Interrupt (IRQ) dispatch.

Note, this trace isn't generated if an Interrupt Service Routine queues a DFC or causes a thread to be scheduled. In these cases, the traces for these events (EIDFCStart or ENewThreadContext) should be taken to indicate that interrupt servicing has ended.

EFiqStart

Trace output at start of Fast Interrupt (FIQ) dispatch.

On platforms which support nested interrupts, traces for these will also be nested.

EFiqEnd

Trace output at end of Fast Interrupt (FIQ) dispatch.

Note, this trace isn't generated if an Interrupt Service Routine queues a DFC or causes a thread to be scheduled. In these cases, the traces for these events (EIDFCStart or ENewThreadContext) should be taken to indicate that interrupt servicing has ended.

EIDFCStart

Trace output at start of Immediate Delayed Function Call (IDFC) processing. This processing also includes moving DFCs to their final queue, so the trace does not necessarily indicate that any IDFCs have been executed.

EIDFCEnd

Trace output at end of Immediate Delayed Function Call (IDFC) processing.

ENewThreadContext

Trace output when a thread is scheduled to run. The context id (NThread*) in this trace is that of the thread being scheduled.

Enum TFastMutex

Enumerators

EFastMutexWait

Event generated when a thread acquires a fast mutex, (waits on it).

Trace data format:
  • 4 bytes containing the fast mutex id, (an NFastMutex*).

EFastMutexSignal

Event generated when a thread releases a fast mutex, (signals it).

Trace data format:
  • 4 bytes containing the fast mutex id, (an NFastMutex*).

EFastMutexFlash

Event generated when a fast mutex is 'flashed' (signalled then immediately waited on again). E.g the operation performed by NKern::FlashSystem.

Trace data format:
  • 4 bytes containing the fast mutex id, (an NFastMutex*).

EFastMutexName

Trace to associate a fast mutex with a textual name.

Trace data format:
  • 4 bytes containing the fast mutex id, (an NFastMutex*).

  • 4 bytes containing unspecified data (should be output as zero).

  • Remaining data is the ASCII name for the fast mutex.

EFastMutexBlock

Event generated when a thread blocks on a fast mutex.

Trace data format:
  • 4 bytes containing the fast mutex id, (an NFastMutex*).

Enum TFlags

Bit flags which indicate state of a trace record.

Enumerators

EHeader2Present = 1<<0

Header2 is present in the trace record.

ETimestampPresent = 1<<1

A timestamp value is present in the trace record.

ETimestamp2Present = 1<<2

A second timestamp value is present in the trace record.

EContextIdPresent = 1<<3

A context ID is present in the trace record.

EPcPresent = 1<<4

A CPU program counter (PC) value is present in the trace record.

EExtraPresent = 1<<5

An 'extra' value is present in the trace record.

ERecordTruncated = 1<<6

Indicates that the data in this trace record was truncated to keep the size within the maximum permissible.

EMissingRecord = 1<<7

Indicates that trace record(s) before this one are missing. This can happen if the trace buffer was full when a trace output was attempted.

Enum TFlags2

Bit flags present in the Flags2 value of the header extension.

Enumerators

EMultipartFlagMask = 3<<0

Masks out the bits for the multipart trace type. (See enum TMultiPart.)

ECpuIdMask = 0xfff<<20

Masks out the bits for the CPU ID for SMP systems (zero if present on non SMP systems)

Enum TFlexibleMemModel

Enumerators

EMemoryObjectCreate

A memory object has been created.

Trace data format:
  • 4 bytes containing the memory object id (DMemoryObject*).

  • 4 bytes containing the size of the memory in pages.

EMemoryObjectDestroy

A memory object has been destroyed.

Trace data format:
  • 4 bytes containing the memory object id (DMemoryObject*).

EMemoryMappingCreate

A memory mapping has been created.

Trace data format:
  • 4 bytes containing the memory mapping id (DMemoryMapping*).

  • 4 bytes containing the memory object id (DMemoryObject*).

  • 4 bytes containing the offset of the mapping into the memory object, in pages

  • 4 bytes containing the size of the mapping in pages

  • 2 bytes containing the ASID

  • 2 spare bytes, currently zero

  • 4 bytes containing the virtual address the mapping

EMemoryMappingDestroy

A memory mapping has been destroyed.

Trace data format:
  • 4 bytes containing the memory mapping id (DMemoryMapping*).

EMemoryObjectIsChunk

A memory object is being used for the contents of a chunk.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the chunk id (a DChunk*)

EMemoryObjectIsCodeSeg

A memory object is being used for the contents of a code segment.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the code segment id (a DCodeSeg*)

EMemoryObjectIsProcessStaticData

A memory object is being used for process static data.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the process id (a DProcess*)

EMemoryObjectIsDllStaticData

A memory object is being used for DLL static data.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the code segment id (a DCodeSeg*)

  • 4 bytes containing the process id (a DProcess*)

EMemoryObjectIsSupervisorStack

A memory object is being used for a thread's supervisor stack.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the thread id (a DThread*)

EMemoryObjectIsUserStack

A memory object is being used for a thread's user stack.

Trace data format:
  • 4 bytes containing the memory object id (a DMemoryObject*).

  • 4 bytes containing the thread id (a DThread*)

EAddressSpaceId

Identifies the Address Space ID (ASID) used for a process.

Trace data format:
  • 4 bytes containing the process id (a DProcess*)

  • 2 bytes containing the ASID

  • 2 spare bytes, currently zero

Enum THeaderStructure

Byte indices into the trace header for specific fields.

Enumerators

ESizeIndex = 0

Size of record in bytes.

EFlagsIndex = 1
Bitfield of flags from enum TFlags. E.g. to detect if a timestamp is present in the record, code like this could be used.
           TUint8* record; // pointer to trace record
			if(record[BTrace::EFlagsIndex]&BTrace::ETimestampPresent)
				TimestampPresent();
			else
				TimestampNotPresent();
          
ECategoryIndex = 2

Category value from enum BTrace::TCategory .

ESubCategoryIndex = 3

Sub-category value. The meaning of this is dependent on the Category.

Enum THeap

Enumeration of sub-category values for trace category EHeap. EHeap

Enumerators

EHeapCreate

Event recorded during process startup which logs the point of heap creation.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 2 bytes containing the size of header overhead, per allocation (0xFFFF indicates a variable size)

  • 2 bytes containing the size of footer overhead, per allocation (0xFFFF indicates a variable size)

EHeapChunkCreate

Event recorded during process startup which details the chunk being used as a heap.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the chunk ID (The RHandleBase* of the chunk)

EHeapAlloc

Event recorded when RHeap::Alloc() is called.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the address of the allocation

  • 4 bytes containing the size of the allocation

  • 4 bytes containing the requested size of allocation

EHeapReAlloc

Event recorded when RHeap::ReAlloc() is called.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the address of the new allocation

  • 4 bytes containing the size of the allocation

  • 4 bytes containing the requested size of allocation

  • 4 bytes containing the address of the old allocation

EHeapFree

Event recorded when RHeap::Free() is called.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the address of the free'd allocation

EHeapAllocFail

Event recorded when RHeap::Alloc() fails.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the requested size of allocation

EHeapReAllocFail

Event recorded when RHeap::ReAlloc() fails.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing the address of the old allocation

  • 4 bytes containing the requested size of allocation

EHeapCorruption

Event recorded when heap memory corruption occurs.

Trace data format:
  • 4 bytes containing the heap ID (The RAllocator*)

  • 4 bytes containing address of the corrupted memory block

  • 4 bytes containing length of the corrupted memory block

EHeapCallStack

Trace to provide additional heap debugging information.

This trace (if present) is generated by Symbian OS memory debug tools, and will follow one of the other THeap events (e.g. EHeapAlloc, EHeapFree, etc.). It is intended to provide a stack trace for the preceding heap event, to indicate how the previous heap event was generated.

On many systems exact stack frames are not available, and the values will be extracted from the stack using heuristics, so there may be some spurious values and some missing values.

Trace data format:
  • 4 bytes containing the heap ID (the RAllocator*)

  • sequence of 4-byte PC values representing the call stack, with the top-most (most recent call) first.

Enum TIic

Enumeration of sub-category values for trace category EIic. EIic 9.6

Enumerators

ERegisterChansStartPsl = 0

Trace output for the invocation by the PSL of registering an array of pointers to channels with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the array

  • 4 bytes containing the number of channels in the array

ERegisterChansStartPil = 1

Trace output for the start of the PIL registering an array of pointers to channels with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the array

  • 4 bytes containing the number of channels in the array

  • 4 bytes containing the number of channels registered with the controller prior to this point

ERegisterChansEndPil = 2

Trace output for the end of the PIL registering an array of pointers to channels with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the array

  • 4 bytes containing the number of channels now registered with the controller

ERegisterChansEndPsl = 3

Trace output for the end of the PSL registering an array of pointers to channels with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the array

  • 4 bytes containing the number of channels in the array

  • 4 bytes containing the error code returned by the IIC bus controller

EDeRegisterChanStartPsl = 4

Trace output for the start of the PSL de-registering a channel with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the channel

EDeRegisterChanStartPil = 5

Trace output for the start of the PIL de-registering a channel with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the number of channels registered with the controller prior to this point

EDeRegisterChanEndPil = 6

Trace output for the end of the PSL de-registering a channel with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the number of channels now registered with the controller

EDeRegisterChanEndPsl = 7

Trace output for the end of the PSL de-registering a channel with the IIC bus controller.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the error code returned by the IIC bus controller

EMQTransSyncStartPil = 8

Trace output for the start of a synchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability token

  • 4 bytes containing the pointer to the transaction object

EMQTransSyncEndPil = 9

Trace output for the end of a synchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability token

  • 4 bytes containing the error code returned by the controller

EMQTransAsyncStartPil = 10

Trace output for the start of a synchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability token

  • 4 bytes containing the pointer to the transaction object

  • 4 bytes containing the pointer to the callback object

EMQTransAsyncEndPil = 11

Trace output for the end of a synchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability token

  • 4 bytes containing the error code returned by the controller

EMCancelTransStartPil = 12

Trace output for the start of cancelling an asynchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability token

  • 4 bytes containing the pointer to the transaction object

EMCancelTransEndPil = 13

Trace output for the end of cancelling an asynchronous queue transaction request in the PIL.

Trace data format:
  • 4 bytes containing the pointer to the transaction object

  • 4 bytes containing the error code returned by the controller

EMProcessTransStartPil = 14

Trace output for the start of processing a transaction request in the PIL.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the pointer to the transaction object

EMProcessTransStartPsl = 15

Trace output for the start of processing a transaction request in the PSL.

Trace data format:
  • 4 bytes containing the pointer to the transaction object

EMProcessTransEndPsl = 16

Trace output for the end of processing a transaction request in the PSL.

Trace data format:
  • 4 bytes containing the result code

EMProcessTransEndPil = 17

Trace output for the end of processing a transaction request in the PIL.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the pointer to the transaction object

  • 4 bytes containing the result code

  • 4 bytes containing the pointer to the client callback object

ESCaptChanSyncStartPil = 18

Trace output for the start of synchronously capturing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability

  • 4 bytes containing a pointer to device specific configuration option applicable to all transactions

ESCaptChanSyncStartPsl = 19

Trace output for the start of synchronously capturing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing a pointer to device specific configuration option applicable to all transactions

ESCaptChanSyncEndPsl = 20

Trace output for the end of synchronously capturing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing the address of the channel

  • 4 bytes containing the result code

ESCaptChanSyncEndPil = 21

Trace output for the end of synchronously capturing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability

  • 4 bytes containing the platform-specific cookie that uniquely identifies the channel

  • 4 bytes containing the result code

ESCaptChanASyncStartPil = 22

Trace output for the start of asynchronously capturing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the bus realisation variability

  • 4 bytes containing a pointer to device specific configuration option applicable to all transactions

  • 4 bytes containing the pointer to the client callback object

ESCaptChanASyncStartPsl = 23

Trace output for the start of asynchronously capturing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a pointer to device specific configuration option applicable to all transactions

ESCaptChanASyncEndPsl = 24

Trace output for the end of asynchronously capturing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing the result code

ESCaptChanASyncEndPil = 25

Trace output for the end of asynchronously capturing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing the result code

ESRelChanStartPil = 26

Trace output for the start of releasing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the channel identifier cookie

ESRelChanStartPsl = 27

Trace output for the start of releasing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

ESRelChanEndPsl = 28

Trace output for the end of releasing a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing the result code

ESRelChanEndPil = 29

Trace output for the end of releasing a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the channel identifier cookie

  • 4 bytes containing the result code

ESRegRxBufStartPil = 30

Trace output for the start of registering an Rx buffer for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing a pointer to the receive buffer

  • 4 bytes containing the number of buffer bytes used to store a word.

  • 4 bytes containing the number of words expected to be received.

  • 4 bytes containing offset from the start of the buffer where to store the received data.

ESRegRxBufStartPsl = 31

Trace output for the start of registering an Rx buffer for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a pointer to the receive buffer

  • 4 bytes containing the number of buffer bytes used to store a word.

  • 4 bytes containing the number of words expected to be received.

  • 4 bytes containing offset from the start of the buffer where to store the received data.

ESRegRxBufEndPsl = 32

Trace output for the end of registering an Rx buffer for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing the result code

ESRegRxBufEndPil = 33

Trace output for the end of registering an Rx buffer for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the result code

ESRegTxBufStartPil = 34

Trace output for the start of registering an Tx buffer for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing a pointer to the transmit buffer

  • 4 bytes containing the number of buffer bytes used to store a word.

  • 4 bytes containing the number of words expected to be transmitted.

  • 4 bytes containing offset from the start of the buffer from where to transmit data.

ESRegTxBufStartPsl = 35

Trace output for the start of registering an Tx buffer for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a pointer to the transmit buffer

  • 4 bytes containing the number of buffer bytes used to store a word.

  • 4 bytes containing the number of words expected to be transmitted.

  • 4 bytes containing offset from the start of the buffer from where to transmit data.

ESRegTxBufEndPsl = 36

Trace output for the end of registering an Tx buffer for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing the result code

ESRegTxBufEndPil = 37

Trace output for the start of setting a notification for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the result code

ESNotifTrigStartPil = 38

Trace output for the start of setting a notification for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the channel identifier cookie

  • 4 bytes containing the trigger value

ESNotifTrigStartPsl = 39

Trace output for the start of setting a notification for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing the trigger value

ESNotifTrigEndPsl = 40

Trace output for the end of setting a notification for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing the result code

ESNotifTrigEndPil = 41

Trace output for the end of setting a notification for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing the channel identifier cookie

  • 4 bytes containing the result code

EMSStatExtStartPil = 42

Trace output for the start of a StaticExtension operaton for a MasterSlave channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing an argument to be passed to the function

  • 4 bytes containing an argument to be passed to the function

EMSStatExtEndPil = 43

Trace output for the end of a StaticExtension operation for a MasterSlave channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing the result code

EMStatExtStartPil = 44

Trace output for the start of a StaticExtension operation for a Master channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing an argument to be passed to the function

  • 4 bytes containing an argument to be passed to the function

EMStatExtStartPsl = 45

Trace output for the start of a StaticExtension operation for a Master channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a function identifier

  • 4 bytes containing an argument to be passed to the function

  • 4 bytes containing an argument to be passed to the function

EMStatExtEndPsl = 46

Trace output for the end of a StaticExtension operation for a Master channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a function identifier

  • 4 bytes containing the result code

EMStatExtEndPil = 47

Trace output for the end of a StaticExtension operation for a Master channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing the result code

ESStatExtStartPil = 48

Trace output for the start of a StaticExtension operation for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing an argument to be passed to the function

  • 4 bytes containing an argument to be passed to the function

ESStatExtStartPsl = 49

Trace output for the start of a StaticExtension operation for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a function identifier

  • 4 bytes containing an argument to be passed to the function

  • 4 bytes containing an argument to be passed to the function

ESStatExtEndPsl = 50

Trace output for the end of a StaticExtension operation for a Slave channel in the PSL.

Trace data format:
  • 4 bytes containing a pointer to the channel object

  • 4 bytes containing a function identifier

  • 4 bytes containing the result code

ESStatExtEndPil = 51

Trace output for the end of a StaticExtension operation for a Slave channel in the PIL.

Trace data format:
  • 4 bytes containing a token containing the bus realisation variability or the channel identifier cookie for this client.

  • 4 bytes containing a function identifier

  • 4 bytes containing the result code

Enum TKernelMemory

Enumeration of sub-category values for trace category EKernelMemory. EKernelMemory

Enumerators

EKernelMemoryInitialFree

Event recorded during startup and prime which details the initial amount of free RAM.

Trace data format:
  • 4 bytes containing the number of bytes of RAM the system started with.

EKernelMemoryCurrentFree

Event recorded during prime which records the then-current amount of free RAM.

Trace data format:
  • 4 bytes containing the number of bytes of free RAM.

EKernelMemoryMiscAlloc
Event recorded when a miscellaneous kernel allocation is made. These include:
  • Memory for MMU page table contents

  • Memory for MMU SPageTableInfos

  • Memory for shadow pages

Trace data format:
  • 4 bytes containing the size, in bytes, of the allocation.

EKernelMemoryMiscFree

Event recorded when a miscellaneous kernel allocation (see EKernelMemoryMiscAlloc above) is freed.

Trace data format:
  • 4 bytes containing the size, in bytes, of the freed allocation.

EKernelMemoryDemandPagingCache

The amount of memory reserved for the minimum demand paging cache. The *actual* DP cache also uses free memory, only this minimum amount is permanently reserved for that purpose. This event is recorded during prime and when the amount changes.

Trace data format:
  • 4 bytes containing the minimum size, in bytes, of the demand paging cache.

EKernelMemoryDrvPhysAlloc

Physically contiguous memory allocated by device drivers via one of: Epoc::AllocPhysicalRam() Epoc::ZoneAllocPhysicalRam() Epoc::ClaimPhysicalRam() TRamDefragRequest::ClaimRamZone()

Trace data format:
  • 4 bytes containing the size of the allocated memory.

  • 4 bytes containing the physical base address of allocated memory.

NB: The prime function logs a EKernelMemoryDrvPhysAlloc record where the physical address is -1 and should be ignored.

EKernelMemoryDrvPhysFree

Memory freed by device drivers via calls to all versions of Epoc::FreePhysicalRam().

Trace data format:
  • 4 bytes containing the size of the freed memory.

  • 4 bytes containing the physical base address of freed memory.

Enum TMetaTrace

Enumeration of sub-category values for trace category EMetaTrace. EMetaTrace

Enumerators

EMetaTraceTimestampsInfo

Information about timestamps used for tracing.

Trace data format:
  • 4 bytes containing the period of the Timestamp value.

  • 4 bytes containing the period of the Timestamp2 value.

  • 4 bytes containing a set of bit flags with the following meaning:
    • Bit 0, if true, indicates that Timestamp and Timestamp2 are two halves of a single 64bit timestamp value; Timestamp2 is the most significant part.

    • All other bits are presently undefined.

The format of the timestamp period data is a period in seconds given using an exponent and mantissa format, where the most significant 8 bits are the signed power-of-two value for the exponent, and the least significant 24 bits are the integer value of the mantissa. The binary point is to the right of the least significant mantissa bit, and the mantissa may not be in normalised form.

Example code for decoding the period:
           TInt32 period; // value from trace record
			int exponent = (signed char)(period>>24);
			int mantissa = period&0xffffff;
			double periodInSeconds = (double)mantissa*pow(2,exponent);
          
EMetaTraceMeasurementStart

Trace indicating the start of a test case being measured.

Trace data format:
  • 4 bytes containing measurement specific value.

  • 4 bytes containing a further measurement specific value.

  • Remaining data is ASCII text providing human readable information.

EMetaTraceMeasurementEnd

Trace indicating the end of a test case being measured.

Trace data format:
  • 4 bytes containing measurement specific identifying value.

  • 4 bytes containing a further measurement specific identifying value.

The values contained in this trace must be identical to those in the corresponding ETraceInfoMeasurementStart trace.

EMetaTraceFilterChange

Trace indicating a change in state of the primary filter.

Trace data format:
  • 1 byte containing a trace category number.

  • 1 byte containing the new filter state for the category. (0=off, 1=on).

  • 2 byte padding. (Should be output as zeros.)

Enum TMultiPart

Values for multipart trace indicator. These values are stored in Flags2 an are obtained by ANDing with the value EMultipartFlagMask.

If a 'Big' trace is generated which doesn't fit into a single trace record then its data is split into several separate trace records; a multipart trace.

In multipart traces the 'extra' trace value is present in the header extension. (EExtraPresent is set.) This extra value contains a unique trace identifier which is the same is all parts of the trace.

The structure of the data part of each trace record in a multipart trace is described below. In this description, the following labels are used.
  • A is the initial 4 bytes of data; the a1 argument of BTraceBig.

  • D is the array of bytes of additional data; the aData argument of BTraceBig.

  • N is the size of D; the aDataSize argument of BTraceBig

  • X is the maximum number of additional bytes which will fit into a trace record. This is usually KMaxBTraceDataArray but this should not be assumed, instead the size and other information present in each trace record should be examined.

For the first part of a multipart trace, the data in a trace record has the following structure:

  • 4 bytes containing N.

  • 4 bytes containing A.

  • X bytes containing D[0..X-1]

If the parts are numbered 0 through to 'j', then a middle part of a multipart trace is numbered 'i' where 0<i<j. The data in these parts has the structure:

  • 4 bytes containing N.

  • 4 bytes containing X*i. I.e. the offset within D for the data in this trace record.

  • X bytes containing D[X*i..X*i+X-1]

For the last part of a multipart trace, the data has the structure:

  • 4 bytes containing N.

  • 4 bytes containing X*j. I.e. the offset within D for the data in this trace record.

  • N modulo X bytes containing D[X*j..N-1]. I.e. the final bytes of the trace data.

Enumerators

EMultipartFirst = 1

Indicates that this trace is the first part of a multipart trace.

EMultipartMiddle = 2

Indicates that this trace is a middle part of a multipart trace. I.e. it is not the first or last part.

EMultipartLast = 3

Indicates that this trace is the last part of a multipart trace.

Enum TPaging

Enumeration of sub-category values for trace category EPaging. EPaging

Enumerators

EPagingPageInBegin
This event indicates the beginning of the 'page in' activity. The end of this activity is indicated by one of the following events:
  • EPagingPageInUnneeded

  • EPagingPageInROM

  • EPagingPageInCode

  • EPagingPageIn (flexible memory model)

Trace data format:
  • 4 bytes containing the virtual address which was accessed, causing this paging event.

  • 4 bytes containing the virtual address of the instruction which caused this paging event. (The PC value.)

On the flexible memory model, the following addition trace data is also present:
  • 1 byte containing the required access permissions, as defined by TMappingPermissions.

  • 3 spare bytes, currently zero

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageInUnneeded

Event which terminates the 'page in' activity when the required page was found to have been paged in by another thread while the current thread was processing the fault (see EPagingPageInBegin).

Trace data format:
  • 0 bytes. (No extra data.)

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageInROM

A ROM page has been paged in. This event indicates the end of the 'page in' activity. (See EPagingPageInBegin.)

Trace data format:
  • 4 bytes containing the physical address of the page 'paged in'.

  • 4 bytes containing the virtual address of the page 'paged in'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageIn is used instead.

EPagingPageOutROM

A ROM page has been 'paged out'. I.e. removed from the live list to be either reused or returned to free pool.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged out'.

  • 4 bytes containing the virtual address of the page being 'paged out'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageOut is used instead.

EPagingPageInFree

A Free page has been 'paged in'. I.e. added to the live list.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged in'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageOutFree

A Free page has been 'paged out'. I.e. removed from the live list to be either reused or returned to free pool.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged out'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageOut is used instead.

EPagingRejuvenate

A page has been made 'young' again because it was accessed.

Trace data format:
  • 4 bytes containing the physical address of the page being rejuvenated, (made young).

  • 4 bytes containing the virtual address which was accessed, causing this paging event.

  • 4 bytes containing the virtual address of the instruction which caused this paging event. (The PC value.)

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageNop

A page fault was found to have already been previously serviced.

Trace data format:
  • 4 bytes containing the physical address of the page accessed.

  • 4 bytes containing the virtual address which was accessed, causing this paging event.

  • 4 bytes containing the virtual address of the instruction which caused this paging event. (The PC value.)

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model.

EPagingPageLock

A page has been locked.

Trace data format:
  • 4 bytes containing the physical address of the page being locked.

  • 4 bytes containing the value of the lock count after the paged was locked.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageUnlock

A page has been unlocked.

Trace data format:
  • 4 bytes containing the physical address of the page being unlocked.

  • 4 bytes containing the value of the lock count before the paged was unlocked.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageOutCache

A page containing RAM cache has been 'paged out'. I.e. removed from the live list to be either reused or returned to free pool.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged out'.

  • 4 bytes containing the virtual address of the page being 'paged out'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageOut is used instead.

EPagingPageInCode

A page containing RAM-loaded code has been paged in. This event indicates the end of the 'page in' activity. (See EPagingPageInBegin.)

Trace data format:
  • 4 bytes containing the physical address of the page 'paged in'.

  • 4 bytes containing the virtual address of the page 'paged in'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageIn is used instead.

EPagingPageOutCode

A page containing RAM-loaded code has been 'paged out'. I.e. removed from the live list to be either reused or returned to free pool.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged out'.

  • 4 bytes containing the virtual address of the page being 'paged out'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is not emitted on the flexible memory model - EPagingPageOut is used instead.

EPagingMapCode

A page of RAM-loaded code was found to already be 'paged in' but not mapped in the faulting process.

Trace data format:
  • 4 bytes containing the physical address of the page 'paged in'.

  • 4 bytes containing the virtual address which was accessed, causing this paging event.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is only emitted on the multiple memory model.

EPagingAged

A page has been made 'old' because it was the last young page to be accessed.

This trace is only produced when the kernel is compiled with the BTRACE_PAGING_VERBOSE macro defined.

Trace data format:
  • 4 bytes containing the physical address of the page being aged, (made old).

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingDecompressStart

Trace emitted at the start of decompression of demand paged data.

This trace is only produced when the kernel is compiled with the BTRACE_PAGING_VERBOSE macro defined.

Trace data format:
  • 4 bytes containing an integer which indicates the compression type being used: 0, no compression; 1, bytepair compression.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingDecompressEnd

Trace emitted at the end of decompression of demand paged data.

This trace is only produced when the kernel is compiled with the BTRACE_PAGING_VERBOSE macro defined.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingMemoryModel

Information about the kernel's memory model.

Trace data format:
  • 4 bytes containing the memory model as defined by TMemModelAttributes.

EPagingChunkDonatePage

A page has been donated to the paging cache via RChunk::Unlock() .

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the page index of the page within the chunk.

This trace is not emitted on the flexible memory model. EPagingDonatePage

EPagingChunkReclaimPage

A page has been reclaimed from the paging cache via RChunk::Lock() .

Trace data format:
  • 4 bytes containing the chunk id (a DChunk*).

  • 4 bytes containing the page index of the page within the chunk.

This trace is not emitted on the flexible memory model. EPagingReclaimPage .

EPagingPageIn

A page has been paged in. This event indicates the end of the 'page in' activity. (See EPagingPageInBegin.)

Trace data format:
  • 4 bytes containing the physical address of the page 'paged in'.

  • 4 bytes containing the memory object id (DMemoryObject*).

  • 4 bytes containing the page index of the page within the memory object.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is only emitted on the flexible memory model.

EPagingPageOut

A page has been 'paged out'. I.e. removed from the live list to be either reused or returned to free pool.

Trace data format:
  • 4 bytes containing the physical address of the page being 'paged out'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is only emitted on the flexible memory model.

EPagingMapPage

Event which terminates the 'page in' activity when the required page was found to already be paged in but not mapped in the faulting process (see EPagingPageInBegin).

Trace data format:
  • 4 bytes containing the physical address of the page 'paged in'.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is only emitted on the flexible memory model.

EPagingDonatePage

A page has been donated to the paging cache via RChunk::Unlock() .

Trace data format:
  • 4 bytes containing the physical address of the page.

  • 4 bytes containing the memory object id (DMemoryObject*).

  • 4 bytes containing the page index of the page within the memory object.

This trace is only emitted on the flexible memory model. EPagingChunkDonatePage .

EPagingReclaimPage

A page has been reclaimed from the paging cache via RChunk::Lock() .

Trace data format:
  • 4 bytes containing the physical address of the page.

This trace is only emitted on the flexible memory model. EPagingChunkReclaimPage .

EPagingAgedClean

A page has been moved to the oldest clean list because it was the last old page and it was clean.

This trace is only produced when the kernel is compiled with the BTRACE_PAGING_VERBOSE macro defined.

Trace data format:
  • 4 bytes containing the physical address of the page being moved to the oldest clean list.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingAgedDirty

A page has been moved to the oldest dirty list because it was the last old page and it was dirty.

This trace is only produced when the kernel is compiled with the BTRACE_PAGING_VERBOSE macro defined.

Trace data format:
  • 4 bytes containing the physical address of the page being moved to the oldest dirty list.

The context id (NThread*) in this trace is that of the thread caused this paging event.

EPagingPageTableAlloc

A page has been allocated to hold the MMU page tables required to map demand paged memory.

Trace data format:
  • 4 bytes containing the physical address of the page allocated.

The context id (NThread*) in this trace is that of the thread caused this paging event.

This trace is only emitted on the flexible memory model.

Enum TPagingMedia

Enumeration of sub-category values for trace category EPagingMedia. EPagingMedia

Enumerators

EPagingMediaLocMedPageInBegin

Event generated when a request to 'page in' data is received by the Local Media Subsystem.

Trace data format:
  • 4 bytes containing the linear address of the buffer to where the data is to be written.

  • 4 bytes containing the offset from start of the partition to where the data to be paged in resides.

  • 4 bytes containing the number of bytes to be read off the media.

  • 4 bytes containing local drive number for the drive where the data to be paged in resides (-1 if ROM paging).

  • 4 bytes containing the linear address in memory where this request object resides.

The context id (NThread*) in this trace is that of the thread that took the page fault that caused this event.

EPagingMediaLocMedPageInPagedIn

Event generated by the Local Media Subsystem when a request to page data in or out has completed.

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the completion code to be returned.

  • 4 bytes containing a code qualifying this request as either a ROM or Code 'page in' (see TPagingRequestId) or a data page-in/out.

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedPageInDeferred

Event generated by the Local Media Subsystem when a request to 'page in' data is deferred.

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing a code qualifying this request as either a ROM or Code 'page in' (see TPagingRequestId) or a data page-in/out..

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedPageInDeferredReposted

Event generated by the Local Media Subsystem when a request to 'page in' data that has been deferred is re-posted.

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing a code qualifying this request as either a ROM or Code 'page in' (see TPagingRequestId) or a data page-in/out..

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedPageInReDeferred

Event generated by the Local Media Subsystem when a request to 'page in' data is re-deferred.

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing a code qualifying this request as either a ROM or Code 'page in' (see TPagingRequestId) or a data page-in/out..

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedPageInQuietlyDeferred

Event generated by the Local Media Subsystem when a request to 'page in' data is issued when the media is not yet open.

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the state of the media (one of TMediaState).

  • 4 bytes containing a code qualifying this request as either a ROM or Code 'page in' (see TPagingRequestId) or a data page-in/out..

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedFragmentBegin

Event generated by the Local Media Subsystem when a fragment of a Write request is created and is ready to be sent to the Media Driver thread .

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the ID of this fragment (middle or last).

  • 4 bytes containing the length of data in this request fragment.

  • 4 bytes containing the offset within the original request to the start of data in this fragment.

  • 4 bytes containing the offset from start of the partition to where the data in this fragment is to be written.

  • 4 bytes containing the address of the DThread object representing the thread that issued the original Write request.

The context id (NThread*) in this trace is that of the File Server drive thread that issued the original Write request.

EPagingMediaLocMedFragmentEnd

Event generated by the Local Media Subsystem when a Write fragment is completed .

Trace data format:
  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the completion code to be returned.

The context id (NThread*) in this trace is that of the File Server drive thread that issued the original Write request.

EPagingMediaPagingMedDrvBegin

Event generated when the Media Driver starts processing a request to 'page in' data in its specific Request(..) function.

Trace data format:
  • 4 bytes containing a code describing the type of the media (one of TMediaDevice).

  • 4 bytes containing the linear address in memory where this request object resides.

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaMedDrvWriteBack

Event generated by the Media Driver when the data read by a 'page in' request is written to the paging buffer.

Trace data format:
  • 4 bytes containing a code describing the type of the media (one of TMediaDevice).

  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the linear address of the buffer to where the data is to be written.

  • 4 bytes containing the offset within the buffer to where the data will be written.

  • 4 bytes containing the length of data to be written.

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaMedDrvOnHold

Event generated when a request to 'page in' data is put on hold because the Media Driver is performing some background operation (not another request) and cannot service the request.

Trace data format:
  • 4 bytes containing a code describing the type of the media (one of TMediaDevice).

  • 4 bytes containing the linear address in memory where this request object resides.

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaMedDrvRead

Event generated by the Media Driver when the data read by a 'page out' request is read from the paging buffer.

Trace data format:
  • 4 bytes containing a code describing the type of the media (one of TMediaDevice).

  • 4 bytes containing the linear address in memory where this request object resides.

  • 4 bytes containing the linear address of the buffer to where the data is to be written.

  • 4 bytes containing the offset within the buffer to where the data will be written.

  • 4 bytes containing the length of data to be written.

The context id (NThread*) in this trace is that of the media driver thread that services this 'page in' request.

EPagingMediaLocMedPageOutBegin

Event generated when a request to 'page out' data is received by the Local Media Subsystem.

Trace data format:
  • 4 bytes containing the linear address of the buffer from where the data is to be read.

  • 4 bytes containing the offset from start of the partition to where the data to be paged out resides.

  • 4 bytes containing the number of bytes to be written to the media.

  • 4 bytes containing the linear address in memory where this request object resides.

The context id (NThread*) in this trace is that of the thread that took the page fault that caused this event.

EPagingMediaLocMedDeleteNotifyBegin

Event generated when a request to mark an area of the swap file as deleted is received by the Local Media Subsystem.

Trace data format:
  • 4 bytes containing NULL

  • 4 bytes containing the offset from start of the partition to where the data to be paged out resides.

  • 4 bytes containing the number of bytes to be marked as deleted

  • 4 bytes containing the linear address in memory where this request object resides.

The context id (NThread*) in this trace is that of the thread that took the page fault that caused this event.

Enum TProfiling

Enumeration of sub-category values for trace category EProfiling. BTrace::EProfiling

Enumerators

ECpuFullSample = 0

CPU sample including program counter and thread context.

Trace data format:
  • 4 bytes containing the program counter.

  • 4 bytes containing thread context (an NThread*).

ECpuOptimisedSample

Optimised CPU sample including program counter. Doesn't include a thread context id as it hasn't changed since the last sample.

Trace data format:
  • 4 bytes containing the program counter.

ECpuIdfcSample

CPU sample from iDFC including program counter.

Trace data format:
  • 4 bytes containing the program counter.

ECpuNonSymbianThreadSample

CPU sample from non-Symbian thread.

Trace data format:
  • no extra bytes are sent

Enum TRamAllocator

Enumeration of sub-category values for trace category ERamAllocator. BTrace::ERamAllocator

Enumerators

ERamAllocZoneCount

The number of RAM zones.

Trace data format:
  • 4 bytes containing the number of RAM zones.

ERamAllocZoneConfig

Information on the layout of a RAM zone.

Trace data format:
  • 4 bytes containing the number of pages in the zone

  • 4 bytes containing the physical base address of the zone

  • 4 bytes containing the ID of the zone

  • 1 bytes containing the preference of the zone

  • 1 bytes containing the flags of the zone

  • 2 bytes reserved for future use

ERamAllocBootAllocation

This trace is sent for every contiguous block of RAM that was allocated during the kernel boot process.

Trace data format:
  • 4 bytes containing the number of contiguous pages allocated for the block

  • 4 bytes containing the physical base address of the block

ERamAllocBootAllocationEnd

This trace marks the end of the boot allocations

Trace data format:
  • no extra bytes are sent

ERamAllocZoneFlagsModified

Event generated when a RAM zone's flags have been modified This could occur when a RAM zone is blocked/unblocked from further allocations from all/certain page types.

Trace data format:
  • 4 bytes containing the ID of the zone

  • 4 bytes containing the flags of the zone

ERamAllocClaimRam

Event generated when DRamAllocator::ClaimPhysicalRam has successfully claimed the specified RAM pages.

Trace data format:
  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocMarkAllocated

Event generated when DRamAllocator::MarkPageAllocated has successfully marked the specified page as allocated.

Trace data format:
  • 4 bytes containing the TZonePageType type of the page

  • 4 bytes containing the address of the page

ERamAllocContiguousRam

Event generated when DRamAllocator::AllocContiguousRam successfully allocates the requested number of pages.

Trace data format:
  • 4 bytes containing the TZonePageType type of the pages

  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocFreePage

Event generated when DRamAllocator::FreePage has successfully freed the specified RAM page.

Trace data format:
  • 4 bytes containing the TZonePageType type of the page

  • 4 bytes containing the address of the page

ERamAllocFreePhysical

Event generated when DRamAllocator::FreePhysical successfully freed the specified RAM page(s).

Trace data format:
  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocRamPages

Event generated for each contiguous block of pages when DRamAllocator::AllocRamPages or DRamAllocator::ZoneAllocRamPages are attempting to fulfil a request.

Trace data format:
  • 4 bytes containing the TZonePageType type of the pages

  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocFreePages

Event generated for contiguous block of pages when DRamAllocator::FreeRamPages is invoked.

Trace data format:
  • 4 bytes containing the TZonePageType type of the pages

  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocRamPagesEnd

Event generated when DRamAllocator::AllocRamPages has successfully allocated all the requested number of RAM pages. If DRamAllocator::AllocRamPages couldn't allocate all the requested pages then this event is not generated.

Trace data format:
  • no extra bytes sent

ERamAllocFreePagesEnd

Event generated when all ERamAllocFreePages events for a particular call of DRamAllocator::FreeRamPages have been generated.

Trace data format:
  • no extra bytes sent

ERamAllocChangePageType

Event generated when DRamAllocator::ChangePageType is has successfully updated the type of the specified page.

Trace data format:
  • 4 bytes containing the new TZonePageType type of the page

  • 4 bytes containing the physical address of the page

ERamAllocZoneContiguousRam

Event generated when DRamAllocator::ZoneAllocContiguousRam has successfully allocated the required number of pages.

Trace data format:
  • 4 bytes containing the TZonePageType type of the pages

  • 4 bytes containing the number of contiguous pages

  • 4 bytes containing the base address of the pages

ERamAllocZoneRamPagesEnd

Event generated when DRamAllocator::ZoneAllocRamPages has successfully allocated all the requested RAM pages. If DRamAllocator::ZoneAllocRamPages couldn't allocate all the requested pages then this event is not generated.

Trace data format:
  • no extra bytes sent

ERamAllocClaimZone

Event generated when Epoc::ClaimRamZone has successfully claimed the requested zone.

Trace data format:
  • 4 bytes containing the ID of the zone that has been claimed.

Enum TRawEventTrace

Enumeration of sub-category values for trace category ERawEvent. BTrace::ERawEvent

Enumerators

ESetEvent = 1

For all the set Functions in the TRawEvent class. Trace Data Format Varies depends which of the Overloaded Set Method from where its set . Trace data format: if there are only one 4 byte data

--The Following oder is folloed for data.
  • 4 bytes containing the event type

if there are 2*4 byte data
  • 4 bytes containing the event type

  • 4 bytes containing the scan code

if there are 3*4 byte data
  • 4 bytes containing the event type --4 bytes containining the X co-ordinate --4 bytes containining the Y co-ordinate

if there are 4*4 byte data
  • 4 bytes containing the event type --4 bytes containining the X co-ordinate --4 bytes containining the Y co-ordinate --4 bytes containining the Z co-ordinate

if there are 5*4 byte data
  • 4 bytes containing the event type --4 bytes containining the X co-ordinate --4 bytes containining the Y co-ordinate --4 bytes containining the Z co-ordinate --4 bytes containining the PointerNumber

if there are 7*4 byte data
  • 4 bytes containing the event type --4 bytes containining the X co-ordinate --4 bytes containining the Y co-ordinate --4 bytes containining the Z co-ordinate --4 bytes containining the Phi polar coordinate. --4 bytes containining the Theta polar coordinate. --4 bytes containining the rotation angle(alpha)

ESetTipEvent
For user side SetTip Events Trace data format:
  • 4 bytes to state containing Tip Info.

ESetTiltEvent
For SetTilt Events Trace data format:
  • 4 bytes containing the event type --4 bytes containining the Phi polar coordinate. --4 bytes containining the Theta polar coordinate.

ESetRotationtEvent
For SetRotation Events Trace data format:
  • 4 bytes containing the event type --4 bytes containining the rotation angle (alpha)

ESetPointerNumberEvent
For SetPointerNumber Events Trace data format:
  • 4 bytes containing the Pointer Number

EUserAddEvent
For user side addevents (User::AddEvent) Trace data format:
  • 4 bytes containing the event type

EKernelAddEvent
For kernal side addevents (Kern::AddEvent) Trace data format:
  • 4 bytes containing the event type

Enum TRequests

9.3

Enumerators

ERequestComplete

Trace generated whenever a request status is completed.

Trace data format:
  • 4 bytes containing the thread id (NThread*) of the thread being signalled.

  • 4 bytes containing the address of the TRequestStatus object.

  • 4 bytes containing the completion reason.

The context id (NThread*) in this trace is that of the thread which completed the request.

Enum TResourceManager

Enumeration of sub-category values for trace category EResourceManager. EResourceManager 9.5

Enumerators

ERegisterResource = 0

Trace output for resource registration.

Trace data format:
  • 4 bytes containing the Resource Id.

  • 4 bytes containing the Resource address.

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource Minimum Level

  • 4 bytes containing the Resource Maximum Level

  • 4 bytes containing the Resource Default Level

ERegisterClient

Trace output for client registration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing client address

  • N bytes containing client name, where 0 < N < 32

EDeRegisterClient

Trace output for client deregistration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing client address

  • N bytes containing client name, where 0 < N < 32

ESetResourceStateStart

Trace output for resource state change start operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing client name, where 0 < N < 32

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource state

ESetResourceStateEnd

Trace output for resource state change end operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing client name, where 0 < N < 32

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing return value.

  • 4 bytes containing the Resource state.

EPostNotificationRegister

Trace output for registration for post notification

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • 4 bytest containing the callback address

  • 4 bytes containing return value.

EPostNotificationDeRegister

Trace output for deregistration for post notification

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • 4 bytes containing the callback address

  • 4 bytes containing the return value.

EPostNotificationSent

Trace output for post notification sent.

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

ECallbackComplete

Trace output for Callback complete

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

EMemoryUsage

Trace output for resource manager memory usage

Trace data format:
  • 4 bytes containing memory allocated in bytes.

EGetResourceStateStart

Trace output for get resource state start operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing client name, where 0 < N < 32

  • N bytes containing the Resource name, where 0 < N < 32

EGetResourceStateEnd

Trace output for get resource state end operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing client name, where 0 < N < 32

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource state

  • 4 bytes containing return value.

ECancelLongLatencyOperation

Trace output for cancellation of long latency operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing client name, where 0 < N < 32

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing return value

EBooting

Trace output for booting of resource manager

Trace data format:
  • 4 bytes containing entry point

EPslChangeResourceStateStart

Trace output for PSL resource state change operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource current state

  • 4 bytes containing the resource requested state

EPslChangeResourceStateEnd

Trace output for PSL resource state change operation

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource current state

  • 4 bytes containing the resource requested state

  • 4 bytes containing return value

EPslGetResourceStateStart

Trace output for get resource state start operation in PSL

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing the Resource name, where 0 < N < 32

EPslGetResourceStateEnd

Trace output for get resource state end operation in PSL

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id.

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the Resource state

  • 4 bytes containing return value.

EPslResourceCreate

Trace output for resource creation

Trace data format:
  • 4 bytes containing minimum value of resource

  • 4 bytes containing maximum value of resource

  • 4 bytes containing the default value of resource

  • 4 bytes containing the properties of the resource

  • N bytes containing the Resource name, where 0 < N < 32

ERegisterStaticResourceWithDependency

Trace output for static resource with dependency registration

Trace data format:
  • 4 bytes containing the Resource Id

  • 4 bytes containing the Resource address

  • N bytes containing the Resource name, where 0 < N < 32

  • 4 bytes containing the minimum value of resource

  • 4 bytes containing the maximum value of resource

  • 4 bytes containing the default value of resource

ERegisterDynamicResource

Trace output for dynamic resource registration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id

  • N bytes containing the client name, where 0 < N < 32

  • N bytes containing the resource name, where 0 < N < 32

  • 4 bytes containing the resouce address

EDeRegisterDynamicResource

Trace output for dynamic resource deregistration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id

  • N bytes containing the client name, where 0 < N < 32

  • N bytes containing the resource name, where 0 < N < 32

  • 4 bytes containing the resource address

  • 4 bytes containing the resource level.

ERegisterResourceDependency

Trace output for resource dependency registration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id of first dependent resource

  • N bytes containing the client name, where 0 < N < 32

  • N bytes containing the resource name of first dependent resource, where 0 < N < 32

  • 4 bytes containing the Resource Id of second dependent resource

  • N bytes containing the resource name of second dependent resource, where 0 < N < 32

  • 4 bytes containing the address of first dependent resource

  • 4 bytes containing the address of second dependent resource

EDeRegisterResourceDependency

Trace output for resource dependency deregistration

Trace data format:
  • 4 bytes containing clientId

  • 4 bytes containing the Resource Id of first dependent resource

  • N bytes containing the client name, where 0 < N < 32

  • N bytes containing the resource name of first dependent resource, where 0 < N < 32

  • 4 bytes containing the resource id of second dependent resource

  • N bytes containing the resource name of second dependent resource, where 0 < N < 32

  • 4 bytes containing the address of first dependent resource

  • 4 bytes containing the address of second dependent resource

Enum TResourceManagerUs

Enumeration of sub-category values for trace category EResourceManagerUs. EResourceManagerUs 9.5

Enumerators

EOpenChannelUsStart = 0

Trace output for the start of opening a channel to the Resource Controller.

Trace data format:
  • 4 bytes unused (displays 0)

  • 4 bytes containing the client thread identifier.

  • N bytes containing the client name, where 0 < N < 32

EOpenChannelUsEnd

Trace output for the end of opening a channel to the Resource Controller.

Trace data format:
  • 4 bytes unused (displays 0)

  • 4 bytes containing the client identifier provided by the Resource Controller

  • N bytes containing the client name, where 0 < N < 32

ERegisterClientUsStart

Trace output for the start of registering a client with the Resource Controller.

Trace data format:
  • 4 bytes the number of concurrent change resource state operations to be supported

  • 4 bytes the number of concurrent notification requests to be supported

  • N bytes containing the client name, where 0 < N < 32

  • 4 bytes the number of concurrent get resource state operations to be supported

ERegisterClientUsEnd

Trace output for the end of registering a client with the Resource Controller.

Trace data format:
  • 4 bytes containing the client identifier provided by the Resource Controller.

  • 4 bytes specifying the value returned from the call to Resource Controller's AllocReserve method

EDeRegisterClientUsStart

Trace output for the start of de-registering a client with the Resource Controller.

Trace data format:
  • 4 bytes unused (displays 0)

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

EDeRegisterClientUsEnd

Trace output for the end of registering a client with the Resource Controller.

Trace data format:
  • 4 bytes containing the client identifier provided by the Resource Controller.

EGetResourceStateUsStart

Trace output for the start of a GetResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

EGetResourceStateUsEnd

Trace output for the end of a GetResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes specifying the resource level

  • 4 bytes containing the client identifier

  • 4 bytes specifying the success code returned by the Resource Controller.

ESetResourceStateUsStart

Trace output for the start of a ChangeResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes specifying the required state

  • N bytes containing the client name, where 0 < N < 32

  • 4 bytes containing the client identifier provided by the Resource Controller.

ESetResourceStateUsEnd

Trace output for the end of a ChangeResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes specifying the requested state

  • 4 bytes containing the client identifier

  • 4 bytes specifying the success code returned by the Resource Controller.

ECancelGetResourceStateUsStart

Trace output for the start of a cancel GetResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

ECancelGetResourceStateUsEnd

Trace output for the end of a cancel GetResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

ECancelSetResourceStateUsStart

Trace output for the start of a cancel ChangeResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

ECancelSetResourceStateUsEnd

Trace output for the end of a cancel ChangeResourceState request to the Resource Controller.

Trace data format:
  • 4 bytes specifying the resource ID

  • 4 bytes containing the client identifier provided by the Resource Controller.

  • N bytes containing the client name, where 0 < N < 32

Enum TSymbianKernelSync

Enumerators

ESemaphoreCreate = 0x00

A semaphore (DSemaphore) has been created.

Trace data format:
  • 4 bytes containing trace id (a DSemaphore*) for this semaphore.

  • 4 bytes containing the owning DThread* or DProcess*

  • Remaining data is the ASCII name of the semaphore.

ESemaphoreDestroy = 0x01

A semaphore (DSemaphore) has been destroyed.

Trace data format:
  • 4 bytes containing trace id (a DSemaphore*) for this semaphore.

ESemaphoreAcquire = 0x02

A semaphore (DSemaphore) has been acquired.

Trace data format:
  • 4 bytes containing trace id (a DSemaphore*) for this semaphore.

ESemaphoreRelease = 0x03

A semaphore (DSemaphore) has been released.

Trace data format:
  • 4 bytes containing trace id (a DSemaphore*) for this semaphore.

ESemaphoreBlock = 0x04

A thread has blocked on a semaphore (DSemaphore)

Trace data format:
  • 4 bytes containing trace id (a DSemaphore*) for this semaphore.

EMutexCreate = 0x10

A mutex (DMutex) has been created.

Trace data format:
  • 4 bytes containing trace id (a DMutex*) for this mutex.

  • 4 bytes containing the owning DThread* or DProcess*

  • Remaining data is the ASCII name of the mutex.

EMutexDestroy = 0x11

A mutex (DMutex) has been destroyed.

Trace data format:
  • 4 bytes containing trace id (a DMutex*) for this mutex.

EMutexAcquire = 0x12

A mutex (DMutex) has been acquired.

Trace data format:
  • 4 bytes containing trace id (a DMutex*) for this mutex.

EMutexRelease = 0x13

A mutex (DMutex) has been released.

Trace data format:
  • 4 bytes containing trace id (a DMutex*) for this mutex.

EMutexBlock = 0x14

A thread has blocked on a mutex (DMutex)

Trace data format:
  • 4 bytes containing trace id (a DMutex*) for this mutex.

ECondVarCreate = 0x20

A condition variable (DCondVar) has been created.

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

  • 4 bytes containing the owning DThread* or DProcess*

  • Remaining data is the ASCII name of the condition variable.

ECondVarDestroy = 0x21

A condition variable (DCondVar) has been destroyed.

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

ECondVarBlock = 0x22

A thread has blocked on a condition variable (DCondVar)

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

  • 4 bytes containing trace id (DMutex*) for the associated mutex.

ECondVarWakeUp = 0x23

A thread has been released from a condition variable (DCondVar) wait

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

  • 4 bytes containing trace id (DMutex*) for the associated mutex.

ECondVarSignal = 0x24

A condition variable (DCondVar) has been signalled

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

  • 4 bytes containing trace id (DMutex*) for the associated mutex.

ECondVarBroadcast = 0x25

A condition variable (DCondVar) has been signalled in broadcast mode.

Trace data format:
  • 4 bytes containing trace id (a DCondVar*) for this condition variable.

  • 4 bytes containing trace id (DMutex*) for the associated mutex.

Enum TThreadIdentification

Enumeration of sub-category values for trace category EThreadIdentification. EThreadIdentification

Enumerators

ENanoThreadCreate

A nano-kernel thread (NThread) has been created.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

ENanoThreadDestroy

A nano-kernel thread (NThread) has been destroyed.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

EThreadCreate

A thread (DThread) has been created.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

  • 4 bytes containing trace id (a DProcess*) for the process to which this thread belongs.

  • Remaining data is the ASCII name of the thread.

EThreadDestroy

A thread (DThread) has been destroyed.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

  • 4 bytes containing trace id for the process to which this thread belongs.

  • 4 bytes containing thread ID, as returned by RThread::Id() .

EThreadName

A thread (DThread) has been renamed. This trace may also be output by the tracing system at initialisation in order to identify threads already in existence.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

  • 4 bytes containing trace id (a DProcess*) for the process to which this thread belongs.

  • Remaining data is the ASCII name of the thread.

EProcessName

A process has been renamed. This trace may also be output together with EThreadCreate or EThreadName traces to help identify the name of the process to which the thread belongs.

Trace data format:
  • 4 bytes containing zero, or if this trace is generated together with EThreadName or EThreadCreate, this contains the context id (an NThread*) for the thread.

  • 4 bytes containing trace id (a DProcess*) for process.

  • Remaining data is the ASCII name of the process.

EThreadId
Informational trace giving a threads ID, as returned by RThread::Id() . Trace data format:
  • 4 bytes containing the context id (an NThread*) for this thread.

  • 4 bytes containing trace id (a DProcess*) for the process to which this thread belongs.

  • 4 bytes containing thread ID, as returned by RThread::Id() .

EProcessCreate

A process has been created.

Trace data format:
  • 4 bytes containing trace id (a DProcess*) for the process.

EProcessDestroy

A process has been destroyed.

Trace data format:
  • 4 bytes containing trace id (a DProcess*) for the process.

Enum TThreadPriority

Enumeration of sub-category values for trace category EThreadPriority. EThreadPriority 9.3

Enumerators

ENThreadPriority = 0

Trace output when a nanothread priority is changed.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for the thread whose priority is changing.

  • 4 bytes containing the new absolute priority.

EDThreadPriority = 1

Trace output when a DThread's default priority is set.

Trace data format:
  • 4 bytes containing the context id (an NThread*) for the thread whose priority is changing.

  • 4 bytes containing the iThreadPriority member - a value from enum TThrdPriority.

  • 4 bytes containing the new default absolute priority.

EProcessPriority = 2

Trace output when a DProcess priority is changed.

Trace data format:
  • 4 bytes containing trace id (a DProcess*) for process.

  • 4 bytes containing the new process priority, a value from enum TProcPriority

Member Type Definitions Documentation

Typedef TBTrace1

typedef TBool (* TBTrace1

Typedef TBTrace2

typedef TBool (* TBTrace2

Typedef TBTrace3

typedef TBool (* TBTrace3

Member Data Documentation

TUint32 BigTraceId

TUint32 BigTraceId [static]