B.3.1 CADIBptRequest_t

The breakpoint request provides the PC address at which a breakpoint must occur and a string that describes the condition of the breakpoint. The target decides whether it can implement the breakpoint conditions.

struct CADIBptRequest_t
{
public: // methods
        CADIBptRequest_t(const CADIAddrComplete_t address = CADIAddrComplete_t(),
                         uint64_t sizeOfAddressRange=0,
                         int32_t enabled=0,
                         const char *conditions_par = "",
                         bool useFormalCondition = 1,
                         CADIBptCondition_t formalCondition = CADIBptCondition_t(),
                         CADIBptType_t type = CADI_BPT_PROGRAM,
                         uint32_t regNumber = 0, 
                         int32_t temporary = false,
                         uint8_t triggerType = 0, 
                         uint32_t continueExecution = false) : 
                 address(address),
                 sizeOfAddressRange(sizeOfAddressRange),
                 enabled(enabled),
                 useFormalCondition(useFormalCondition),
                 formalCondition(formalCondition), type(type),
                 regNumber(regNumber),
                 temporary(temporary),
                 triggerType(triggerType),
                 continueExecution(continueExecution)
        {
            AssignString(conditions, conditions_par, CADI_DESCRIPTION_SIZE);
        }
public: // data
        CADIAddrComplete_t  address;    
        uint64_t            sizeOfAddressRange; 
        int32_t             enabled;           
        char                conditions[CADI_DESCRIPTION_SIZE]; 
        bool                useFormalCondition;   
        CADIBptCondition_t  formalCondition;  
        CADIBptType_t       type;   
        uint32_t            regNumber;   
        int32_t             temporary;   
        uint8_t             triggerType; 
        uint32_t            continueExecution;
};
address
is the PC address at which the breakpoint is to occur.
sizeOfAddressRange
is used only if type is CADI_BPT_PROGRAM_RANGE.
enabled
selects Enable/Disable breakpoint.
conditions
are the breakpoint conditions. Ultimately the target decides whether or not it can implement breakpoint conditions.
useFormalCondition
if 0, use free-form conditions. If 1, use formalCondition.
formalCondition
are the formal conditions.
type
is the type.
regNumber
is only used for the register type.
temporary
specifies a temporary breakpoint.
triggerType

enables breakpoints that trigger only on read, write, or modify of the register or memory. Use these defines to set the trigger:

  • CADI_BPT_TRIGGER_ON_READ triggers a breakpoint if the associated memory or register is read from by either a normal or debug read.
  • CADI_BPT_TRIGGER_ON_WRITE triggers a breakpoint if the associated memory or register is written to by either a normal or debug read.
  • CADI_BPT_TRIGGER_ON_MODIFY triggers a breakpoint if the value of the associated register or memory has been modified. This trigger might be the result of an explicit register or memory access or (for example in case of registers or memory-mapped registers) of executing an instruction.

The trigger condition defines can be ORed together to make the breakpoint sensitive to more than one condition.

Note:

triggerType only has meaning for CADI_BPT_REGISTER and CADI_BPT_MEMORY breakpoints:
  • The debugger must set triggerType to zero for other breakpoint types.
  • Setting triggerType to zero for CADI_BPT_REGISTER and CADI_BPT_MEMORY results in undefined behavior and must not be done.
continueExecution

if 1, continue execution after breakpoint has been hit. All types of breakpoint must obey this field, including CADI_BPT_INST_STEP.

Non-ConfidentialPDF file icon PDF version100963_0200_03_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.