5.15.3 Breakpoints functions

Describes the following functions:

breakpoint_delete()

Deletes the specified breakpoint.

Arguments

bptId

Type: NumberU64

Breakpoint id of the breakpoint to delete.

instId

Type: NumberU64

Opaque number uniquely identifying the target instance.

Return value

Function has no return value.

Errors

  • E_unknown_instance_id.
  • E_unknown_breakpoint_id.
  • E_error_deleting_breakpoint.

breakpoint_getAdditionalConditions()

Discovers any component-specific breakpoint conditions that are supported by an instance.

Arguments

instId

Type: NumberU64

Opaque number uniquely identifying the target instance.

type

Type: String

Optional. If present, return only conditions that are applicable to the specified breakpoint type. Must be one of: "code", "data", or "register". See breakpoint_set().

Return value

BreakpointConditionInfo[]

List of BreakpointConditionInfo objects indicating additional conditions that can be configured.

Errors

  • E_unknown_instance_id.
  • E_unsupported_breakpoint_type.

breakpoint_getList()

Gets information about one or all breakpoints that have been set.

Arguments

bptId

Type: NumberU64

Optional. If specified, just return the information for the specified breakpoint. If not specified, return the information for all breakpoints.

instId

Type: NumberU64

Opaque number uniquely identifying the target instance.

Return value

BreakpointInfo[]

List of BreakpointInfo Objects that contain information about one or all breakpoints.

Errors

  • E_unknown_instance_id.
  • E_unknown_breakpoint_id.

breakpoint_set()

Sets and adds a breakpoint on a specific instance.

Arguments

action

Type: BreakpointAction

Optional. Perform the specified action whenever the breakpoint is hit. There are actions defined to enable or disable event streams. See BreakpointAction Object.

address

Type: NumberU64

Optional. Address or start address of a range for code and data breakpoints. Mandatory for code and data breakpoints. Ignored for other breakpoint types.

conditions

Type: Map[String]Value

Optional. Key-value pairs specifying additional component-specific breakpoint conditions. See breakpoint_getAdditionalConditions().

dontStop

Type: Boolean

Optional. Iff present and True, do not stop the simulation on breakpoint hit, but still generate an IRIS_BREAKPOINT_HIT event with field dontStop=True. This feature is used to implement trace trigger points. Together with syncEc=True, this can be used to check for arbitrary conditions in the client before stopping the simulation, or for causing other effects at runtime, for example enabling or disabling trace, or writing resources.

instId

Type: NumberU64

Opaque number uniquely identifying the target instance.

rscId

Type: NumberU64

Optional. Resource id for register breakpoints. Mandatory for register breakpoints, ignored for other breakpoint types.

rwMode

Type: String

Default: rw

Optional. Either "r", "w", or "rw" for read-only, write-only, or read-write (default). Only relevant for data and register breakpoints, ignored for other breakpoint types.

size

Type: NumberU64

Optional. Size of address range in bytes for code and data breakpoints. Ignored for other breakpoint types. The default is 0 which means to hit when the access or execution addresses match exactly. For size > 0, breakpoints hit when the access or execution is in the inclusive range [address to address+size-1].

spaceId

Type: NumberU64

Optional. Memory space id for code and data breakpoints. Mandatory for code and data breakpoints, ignored for other breakpoint types.

syncEc

Type: Boolean

Default: False

Optional. Iff present and true, call the IRIS_BREAKPOINT_HIT callback synchronously for this breakpoint. If this is true this overrides the syncEc setting given in eventStream_create(IRIS_BREAKPOINT_HIT). This allows breakpoint-hit callbacks to be generally asynchronous and the synchronous behavior can be switched on for specific breakpoints only. The default is false. See syncEc argument of eventStream_create() function.

type

Type: String

Breakpoint type. Must be one of code, data, or register:

"code" (Disassembly breakpoint)
Hit just before the instruction at address in memory space spaceId is executed. When size is specified and > 0, hit just before any instruction in the range [address to address+size-1] is executed.
"data" (Watchpoint)
Hit while or shortly after address in memory space spaceId was accessed with an access matching rwMode. When size is specified and > 0, hit while or shortly after an address in the range [address to address+size-1] was accessed. Setting a data breakpoint implicitly requests a syncLevel of 2 (POST_INSN_IO).
register
Hit while or shortly after register rscId was accessed with an access matching rwMode.

If the type of breakpoint is not supported by the instance, E_unsupported_breakpoint_type is returned.

Return value

NumberU64

Breakpoint id (bptId). This is specific to the instance.

Errors

  • E_unknown_instance_id.
  • E_unsupported_argument_combination.
  • E_invalid_rwMode.
  • E_invalid_breakpoint_condition.
  • E_error_setting_breakpoint.
Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.