#include <crashdatasource.h>

Class CCrashDataSource

Interface access: publishedPartner

class CCrashDataSource : public CBase;

Description

Definition of the Data Source API. This API is used by formatters to obtain crash data from the Core Dump Server. The Core Dump Server derives and implements this API.

Derivation

    • CBase - No description.
      • CCrashDataSource - Definition of the Data Source API. This API is used by formatters to obtain cras...

Members

Defined in CCrashDataSource More...

Construction and destruction


ConstructL()

Interface access: publishedPartnerInherited from: crashdatasource.h

protected: virtual void ConstructL()=0;

Description

Standard second-phase constructor.

Member functions


GetRegisterListL(RRegisterList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void GetRegisterListL(RRegisterList &aRegisterList)=0;

Description

This call returns information on all available registers. It does not return the register contents. This is used to establish which registers a caller could ask for, in particular for Co Processor registers. The callee (not the caller) allocates aRegisterList. This method is used by a formatter to establish which registers it can ask for, and thus need only be called once per session.

Parameters

RRegisterList &aRegisterList

Returned register list with available registers.

See also:

  • TRegisterDataDetailed information about a register. The Symbian ELF format defines the regist...

ReadRegistersL(const TUint64,RRegisterList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void ReadRegistersL(const TUint64 aThreadId, RRegisterList &aRegisterList)=0;

Description

Ask the Core Dump server for some register data. The caller allocates the array and fills in the details of the registers for which it would like the contents.

Parameters

const TUint64 aThreadId

Thread to read registers from.

RRegisterList &aRegisterList

Returned register list with current values.

See also:


ReadMemoryL(const TUint64,const TUint32,const TUint32,TDes8 &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void ReadMemoryL(const TUint64 aThreadId, const TUint32 aAddress, const TUint32 aLength, TDes8 &aData)=0;

Description

Read data from target relative to a particular thread. The caller assumes ownership of the resulting data descriptor.

Parameters

const TUint64 aThreadId

Memory read is relative to this thread parameter

const TUint32 aAddress

Virtual address to read from

const TUint32 aLength

Number of bytes to read

TDes8 &aData

Descriptor for read data


GetProcessListL(RProcessPointerList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetProcessListL(RProcessPointerList &aData);

Description

Read the current process list. The caller assumes ownership of resulting data.

Parameters

RProcessPointerList &aData

Array of currently running processes .

See also:

  • CProcessInfoClass that represents a process on the target. It is based on CStreamElementBase...

GetProcessListL(RProcessPointerList &,TUint &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void GetProcessListL(RProcessPointerList &aData, TUint &aTotalProcessListDescSize)=0;

Description

Read the current process list. The caller assumes ownership of the resulting data. This call is only useful if the total descriptor size required for transferring across the client-server boundary must be known.

Parameters

RProcessPointerList &aData

Array of currently running processes.

TUint &aTotalProcessListDescSize

Total descriptor size required to transfer the list across the client-server interface.

Leave codes

One

of the OS wide codes

See also:

  • CProcessInfoClass that represents a process on the target. It is based on CStreamElementBase...

GetExecutableListL(RExecutablePointerList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetExecutableListL(RExecutablePointerList &aData);

Description

Read the current executable list. The caller assumes ownership of the resulting data.

Parameters

RExecutablePointerList &aData

Array of current executables.

Leave codes

One

of the OS wide codes

See also:

  • CExecutableInfoClass that represents a target executable file from which a process can launched...

GetExecutableListL(RExecutablePointerList &,TUint &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void GetExecutableListL(RExecutablePointerList &aData, TUint &aTotalExecutableListDescSize)=0;

Description

Read the current executable list. The caller assumes ownership of the resulting data. This call is only useful if the total descriptor size required for transferring across the client-server boundary must be known.

Parameters

RExecutablePointerList &aData

Array of current executables.

TUint &aTotalExecutableListDescSize

Total descriptor size required to transfer the list across the client-server interface.

Leave codes

One

of the OS wide codes

See also:

  • CExecutableInfoClass that represents a target executable file from which a process can launched...

GetThreadListL(const TUint64,RThreadPointerList &,TUint &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void GetThreadListL(const TUint64 aProcessId, RThreadPointerList &aThreadList, TUint &aTotalThreadListDescSize)=0;

Description

Read the current thread list. This call is only useful if the total descriptor size required for transferring across the client-server boundary must be known.

Parameters

const TUint64 aProcessId

If this argument is -1, all the threads in the system are returned. Otherwise the threads under the process with the id aProcessId are returned.

RThreadPointerList &aThreadList

Array of currently running threads.

TUint &aTotalThreadListDescSize

Size in bytes of the descriptor required to transfer the data over the client server interface.

Leave codes

One

of the OS wide codes

See also:


GetThreadListL(const TUint64,RThreadPointerList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetThreadListL(const TUint64 aProcessId, RThreadPointerList &aThreadList);

Description

Read the current thread list. The caller assumes ownership of the resulting data.

Parameters

const TUint64 aProcessId

If this argument is -1, all the threads in the system are returned. Otherwise the threads under the process with the id aProcessId are returned.

RThreadPointerList &aThreadList

Array of currently running threads.

Leave codes

One

of the OS wide codes

See also:

  • CThreadInfoClass that represents a thread on the target. It is based on CStreamElementBase,...

GetCodeSegmentsL(const TUint64,RCodeSegPointerList &,TUint &)

Interface access: publishedPartnerInherited from: crashdatasource.h

virtual void GetCodeSegmentsL(const TUint64 aTid, RCodeSegPointerList &aCodeSegs, TUint &aTotalCodeSegListDescSize)=0;

Description

Obtain a list of the code segments for a process.

Parameters

const TUint64 aTid

Thread identifier to obtain code segments for.

RCodeSegPointerList &aCodeSegs

Array of code segments.

TUint &aTotalCodeSegListDescSize

Size in bytes of the descriptor required to transfer the data over the client server interface.

Leave codes

One

of the OS wide codes

See also:


GetCodeSegmentsL(const TUint64,RCodeSegPointerList &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetCodeSegmentsL(const TUint64 aTid, RCodeSegPointerList &aCodeSegs);

Description

Obtain a list of the code segments for a process.

Parameters

const TUint64 aTid

Thread identifier to obtain code segments for.

RCodeSegPointerList &aCodeSegs

Array of code segments.

Leave codes

One

of the OS wide codes

See also:


GetAvailableTraceSizeL()

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual TUint GetAvailableTraceSizeL();

Description

Returns the size of the trace buffer that is available. Should be used in conjunction with ReadTraceBufferL to determine the size of the buffer you need to pass in.

Return value

TUint

Trace Buffer Size

Leave codes

One

of the OS wide codes

See also:


ReadTraceBufferL(TDes8 &,TUint)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void ReadTraceBufferL(TDes8 &aTraceData, TUint aPos=0);

Description

Reads trace data from trace buffer at time of crash. If the resulting descriptor is of size zero then no trace data is available. Use GetAvailableTraceSizeL to see what size buffer to supply.

Parameters

TDes8 &aTraceData

Descriptor to store trace data

TUint aPos

Position in the trace buffer from which to read. It will read to the end or until the supplied descriptor is full, whichever happens first.

Leave codes

One

of the OS wide codes

See also:


GetLocksL(TSCMLockData &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetLocksL(TSCMLockData &aLockData);

Description

Reads locks data

Parameters

TSCMLockData &aLockData

Descriptor to store trace data

Leave codes

One

of the OS wide codes


GetROMBuildInfoL(TRomHeaderData &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual void GetROMBuildInfoL(TRomHeaderData &aRomHeader);

Description

Reads the ROM Build Info

Parameters

TRomHeaderData &aRomHeader

Contains the ROM header info after the call if succesful

Leave codes

One

of the OS wide codes


GetVersion()const

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual TVersion GetVersion() const;

Description

Returns the version of this implementation of the data source

Return value

TVersion

TVersion Data Source version


GetDataSourceFunctionalityBufSize(TUint &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual TInt GetDataSourceFunctionalityBufSize(TUint &aBufSize);

Description

Returns the buffer size that will be required to read the Data Source functionality block

Parameters

TUint &aBufSize

Size of the buffer required

Return value

TInt

One of the OS wide codes

See also:


GetDataSourceFunctionality(TDes8 &)

Interface access: publishedPartnerInherited from: crashdatasource.h

inline virtual TInt GetDataSourceFunctionality(TDes8 &aFuncBuffer);

Description

Returns the Data Source Functionality block. Should be used in conjunction with GetDataSourceFunctionalityBufSize to determine how big a buffer should be passed through.

Information in the debug functionality block is represented as a concatenation of TTag objects and a TTagHeader.

Parameters

TDes8 &aFuncBuffer

Return value

TInt

One of the OS wide codes

See also:

Member structures


Struct TDataSourceTagHeader

Interface access: publishedPartner

struct TDataSourceTagHeader;

Description

Information in the Data Source functionality block is represented as a concatenation of pairs of CCrashDataSource::TDataSourceTagHeader structures and arrays of TTag objects.

Members

Defined in CCrashDataSource::TDataSourceTagHeader:

  • iNumTagsThe number of TTag elements in the array associated with this TTagHeader.
  • iTagHdrIdValue identifying the contents of this TTagHeader, should be interpreted as an e...

See also:

Member data


iTagHdrId

Interface access: publishedPartnerInherited from: crashdatasource.h

TUint16 iTagHdrId;

Description

Value identifying the contents of this TTagHeader, should be interpreted as an enumerator from TTagHeaderId.


iNumTags

Interface access: publishedPartnerInherited from: crashdatasource.h

TUint16 iNumTags;

Description

The number of TTag elements in the array associated with this TTagHeader.

Member enumerations


Enum TDataSourceFunctionalityCore

Interface access: publishedPartnerInherited from: crashdatasource.h

TDataSourceFunctionalityCore

Description

These tags define what kinds of core functionality is supported by a given implementation of the data source. TTag structures associated with the ETagHeaderIdCore sub-block will have iTagId values from this enumeration. See each enumerator for an explanation of how a TTag with that iTagId should be interpreted.

ECodeSegments

Indicates whether getting code segments is supported

EExecutableList

Indicates whether getting the executable list is supported

EProcessList

Indicates whether getting the process list is supported

ERegisterList

Indicates whether getting the register list is supported

EThreadList

Indicates whether getting the thread list

EReadMemory

Indicates whether reading memory is supported.

EReadRegisters

Indicates whether reading registers is supported.

EReadTraceBuffer

Indicates whether reading the trace buffer is supported.

ERomBuildInfo

Indicates whether obtaining the ROM build info is supported

ESystemLocks

Indicates whether obtaining the System Locks info is supported

EExceptionStacks

Indicates whether obtaining the exception stacks is supported

ECoreLast

A debug agent should find the number of core tags from the DFBlock rather than this enumerator.


Enum TDataSourceTagHeaderId

Interface access: publishedPartnerInherited from: crashdatasource.h

TDataSourceTagHeaderId

Description

Enumeration used to identify CCrashDataSource::TDataSourceTagHeader structures, CCrashDataSource::TDataSourceTagHeader::iTagHdrId elements take these enumerators as values.

See also:

ETagHeaderIdCore

Identifies a TTagHeader with associated TTag elements with iTagId values from TDataSourceFunctionalityCore.

ELast

Member data


iSpare1

Interface access: internal to technology

TUint32 iSpare1;

Description

For future expansion


iSpare2

Interface access: internal to technology

TUint32 iSpare2;

Description