winIDEA SDK
|
This class can be used to configure trace in a similar way as it is done via GUI wizard.
To get instance of this class, use one of the static factory methods.
#include <CTraceConfigWizard.h>
Public Types | |
enum | EAccessType { ERead , EWrite , EReadWrite } |
Variable access type. More... | |
enum | EDataWidthType { EWidthAny , EWidth1 , EWidth2 , EWidth4 } |
Data width type. More... | |
enum | EEdgeType { ERisingEdge , EFallingEdge , EAUXState } |
Edge type for AUX trace trigger. More... | |
enum | ERecordingContent { ERecordEverything , ERecordProgramFlow , ERecordDataAccess , ERecordInstrumentationMsgs } |
Type of trace recording to perform. More... | |
enum | ESamplesOffset { ESamplesBefore , ESamplesAfter , ESamplesBeforeAndAfter } |
Type of sampling of additional samples. More... | |
enum | ERecordingDuration { EAllTheTime , EBetweenTwoEvents } |
Type of recording duration. More... | |
Public Member Functions | |
void | setRecordingContent (ERecordingContent recType, const std::string &identifierOrStartAddr="", const std::string &identifierOrEndAddr="", EAccessType accessType=EReadWrite) |
If this method is not called, then 'Record Everything' is configured. More... | |
void | setRecordingAttibutes (ESamplesOffset samplesOffsetType, ERecordingDuration recordingDuration) |
This method sets additional recording properties. More... | |
void | setProcess (const std::string &name) |
This method sets process name. More... | |
Static Public Member Functions | |
static CTraceConfigWizardSPtr | createImmediateTrigger () |
This method creates trigger configuration equal to selecting 'Trigger Immediately' radio button in trace wizard GUI. | |
static CTraceConfigWizardSPtr | createDataAccessTrigger (const std::string &varName, bool isCoverEntireObject, const std::string &endAddress, EAccessType accessType) |
This method creates trigger configuration for data access event. More... | |
static CTraceConfigWizardSPtr | createDataAccessTrigger (const std::string &varName, bool isCoverEntireObject, const std::string &endAddress, EAccessType accessType, EDataWidthType dataWidth, DWORD value, DWORD mask) |
This method creates trigger configuration for data access event. More... | |
static CTraceConfigWizardSPtr | createCodeExecTrigger (const std::string &funcName) |
This method creates trigger configuration for code execution event. More... | |
|
static |
This method creates trigger configuration for code execution event.
funcName | name of a function or literal address, where execution triggers trace recording |
|
static |
This method creates trigger configuration for data access event.
varName | name of a variable or literal address, where access triggers trace recording |
isCoverEntireObject | if true, access to entire object is monitored |
endAddress | name of variable or literal address, where monitoring for trigger ends |
accessType | type of memory access |
|
static |
This method creates trigger configuration for data access event.
varName | name of a variable or literal address, where access triggers trace recording |
isCoverEntireObject | if true, access to entire object is monitored |
endAddress | name of variable or literal address, where monitoring for trigger ends |
accessType | type of memory access |
dataWidth | data width type |
value | value that triggers trace recording |
mask | bit mask - 0 ignore, 1 consider |
void isys::CTraceConfigWizard::setProcess | ( | const std::string & | name | ) |
This method sets process name.
name | process name |
void isys::CTraceConfigWizard::setRecordingAttibutes | ( | ESamplesOffset | samplesOffsetType, |
ERecordingDuration | recordingDuration | ||
) |
This method sets additional recording properties.
samplesOffsetType | defines any additional samples to record |
recordingDuration | defines the recording duration |
void isys::CTraceConfigWizard::setRecordingContent | ( | ERecordingContent | recType, |
const std::string & | identifierOrStartAddr = "" , |
||
const std::string & | identifierOrEndAddr = "" , |
||
EAccessType | accessType = EReadWrite |
||
) |
If this method is not called, then 'Record Everything' is configured.
If more detailed configuration is required, call it for each ERecordingContent, which you want to record.
recType | if set to ERecordEverything, then all other recording settings are reset. Other function parameters are ignored. |
identifierOrStartAddr | name of function or variable (depending on recType), or literal start address of area to trace |
identifierOrEndAddr | name of function or variable (depending on recType), or literal end address of area to trace |
accessType | memory access type, used only when recType == ERecordDataAccess. |