8.8.1.1.1.3.1. Types

8.8.1.1.1.3.1.1. Address

An address on the target.

JavaScript numbers are floating point and can only accurately represent up to 53 bit integers accurately. Since we need to support 64 bit addressable targets, we support, and recommend, specifying addresses as strings or BigInts. Standard Javascript numbers are supported as well, for convenience, but their limitations should be kept in mind.

It is recommended that you perform pointer arithmetic using BigInts instead of standard javascript numbers, unless you are sure that the addresses are less than 53 bits wide.

// Different ways of specifying an address
session.breakpoints.add(0x2400n); // as a BigInt
session.breakpoints.add("0x2400"); // as a string
session.breakpoints.add(0x2400); // as a standard Javascript number
Address = bigint | string | number

8.8.1.1.1.3.1.2. Page

A memory page on the target. Either the zero based index of the page, or its name.

The program page is always index 0.

Page = number | string

8.8.1.1.1.3.1.3. DSLocation

A memory location on the target. Specifies an address and, optionally, a memory page.

Any address is a valid location. To specify a page, the location must be a numeric string representing the address followed by @<page name>, @pa (physical access), or @ipa (intermediate physical access). If no page is specified, then the default memory page is assumed.

// The following are all valid DSLocations (assuming the existence of pages PROGRAM and DATA)
0x2400n
9216n
0x2400
9216
"0x2400"
"0x2400@PROGRAM"
"9216@PROGRAM"
"0x2400@DATA"
DSLocation = Address | string

8.8.1.1.1.3.1.4. CoreList

interface CoreList()
cores: string[]

The currently available debuggable cores.

nonDebugCores: string[]

The currently available non-debuggable cores.

8.8.1.1.1.3.1.5. NumericRange

interface NumericRange()
min: number

The lower bound of the range

max: number

The upper bound of the range

8.8.1.1.1.3.1.6. BigNumericRange

interface BigNumericRange()
min: bigint | number | string

The lower bound of the range

max: bigint | number | string

The upper bound of the range

8.8.1.1.1.3.1.7. BaseSetting

interface BaseSetting()
id: string

The unique identifier of the setting.

name: string

The name of the setting.

8.8.1.1.1.3.1.8. DebugSetting

A debugger setting for a particular target. The setting's type can be determined by inspecting the type field.

DebugSetting = BoolSetting | NumericSetting | StringSetting

8.8.1.1.1.3.1.9. BoolSetting

A boolean setting.

interface BoolSetting()
id: string

The unique identifier of the setting.

name: string

The name of the setting.

type: "bool"

Indicates this is a boolean setting.

value: boolean

The value of the setting.

8.8.1.1.1.3.1.10. NumericSetting

A numeric setting, possibly restricted to a range.

interface NumericSetting()
id: string

The unique identifier of the setting.

name: string

The name of the setting.

type: "numeric"

Indicates this is a numeric setting.

value: number

The value of the setting.

allowedRange: NumericRange, optional

If present, indicates that the value must not lie outside the range (both ends are in the range).

8.8.1.1.1.3.1.11. StringSetting

A string-valued setting, possibly restricted to a list of possible values.

interface StringSetting()
id: string

The unique identifier of the setting.

name: string

The name of the setting.

type: "string"

Indicates this is a string-valued setting.

value: string

The value of the setting.

unresolvedValue: string, optional

The value of the property before any variable substitutions have been applied. Is only present if variable substitutions have occurred. For more details on variable substitution in settings see {@link DebuggerRootObject.settingsVariableSubstitutions}.

allowedValues: string[], optional

If present, indicates that the setting's value must be one of these values.

8.8.1.1.1.3.1.12. BreakpointProperty

A property of a breakpoint. The properties exact value can be determined by inspecting the type field.

BreakpointProperty = BoolBreakpointProperty | IntegerBreakpointProperty | LocationBreakpointProperty | StringBreakpointProperty

8.8.1.1.1.3.1.13. BaseBreakpointProperty

interface BaseBreakpointProperty()
id: string

The unique identifier for the property.

description: string

A description of the property.

8.8.1.1.1.3.1.14. BoolBreakpointProperty

interface BoolBreakpointProperty()
id: string

The unique identifier for the property.

description: string

A description of the property.

type: "bool"

Indicates this is a boolean property.

value: boolean

The property's value.

8.8.1.1.1.3.1.15. IntegerBreakpointProperty

interface IntegerBreakpointProperty()
id: string

The unique identifier for the property.

description: string

A description of the property.

type: "int"

Indicates this is a integer property.

value: bigint | number | string

The property's value.

allowedValues: (bigint | number | string)[], optional

If present, indicates that the value must be one of these values.

allowedRange: BigNumericRange, optional

If present, indicates that the value must not lie outside the range (both ends are in the range).

8.8.1.1.1.3.1.16. LocationBreakpointProperty

interface LocationBreakpointProperty()
id: string

The unique identifier for the property.

description: string

A description of the property.

type: "location"

Indicates this is a location property.

value: bigint | number | string

The value the location is based on.

8.8.1.1.1.3.1.17. StringBreakpointProperty

interface StringBreakpointProperty()
id: string

The unique identifier for the property.

description: string

A description of the property.

type: "string"

Indicates this is a string property.

value: string

The property's value.

allowedValues: string[], optional

If present, indicates that the value must be one of these values.

8.8.1.1.1.3.1.18. ClockEvent

interface ClockEvent()
id: number

The event's identifier.

name: string

The event's name.

8.8.1.1.1.3.1.19. GroupInfo

interface GroupInfo()
id: string

The group's unique identifier.

name: string

The group's name.

8.8.1.1.1.3.1.20. RegisterInfo

interface RegisterInfo()
id: string

The register's unique identifier.

name: string

The register's name.

location: bigint | number | string, optional

The address in memory where this register exists. Undefined for core registers.

readable: boolean

True if this register can be read. Note that the target must be in a state that allows access as well.

writable: boolean

True if this register can be written. Note that the target must be in a state that allows access as well.

8.8.1.1.1.3.1.21. RegistersGroupsResult

interface RegistersGroupsResult()
registers: RegisterInfo[]

The list of registers in the group.

groups: GroupInfo[]

The list of register groups in the group.

8.8.1.1.1.3.1.22. RegisterBitfield

interface RegisterBitfield()
id: string

The bitfield's unique identifier.

name: string

The bitfield's name.

start: number

The bit within the containing register that this bitfield starts at.

stop: number

The bit within the containing register that this bitfield ends at.

readable: boolean

True if this bitfield can be read.

writable: boolean

True if this bitfield can be written.

8.8.1.1.1.3.1.23. SymbolsSourceLineResult

interface SymbolsSourceLineResult()
path: string

The path to the source file.

line: number

The line number.

column: number

The column number.

8.8.1.1.1.3.1.24. FrameResult

interface FrameResult()
functionName: string, optional

The function's name.

sourceLine: SymbolsSourceLineResult, optional

The source line of the frame.

pc: string

The program counter.

8.8.1.1.1.3.1.25. CallstackResult

interface CallstackResult()
frames: FrameResult[]

The frames in the callstack.

reasonUnwindHalted: string

The reason the callstack unwind was halted.

8.8.1.1.1.3.1.26. MemoryMapEntry

interface MemoryMapEntry()
start: DSLocation

The starting address (inclusive) of this region.

end: DSLocation

The ending address (inclusive) of this region.

attributes: string[]

The string attributes of this region. These are the attributes passed to GEL_MapAddStr as a | separated list.

8.8.1.1.1.3.1.27. MemoryMapResult

interface MemoryMapResult()
entries: MemoryMapEntry[]

The list of entries in the memory map.

enabled: boolean

True if the memory map is enabled, false otherwise.

8.8.1.1.1.3.1.28. MemoryPageInfo

interface MemoryPageInfo()
name: string

The name of the memory page.

8.8.1.1.1.3.1.29. MemoryPages

interface MemoryPages()
pages: MemoryPageInfo[]

The list of target's memory pages.

8.8.1.1.1.3.1.30. ArmAdvancedFeaturesAction

interface ArmAdvancedFeaturesAction()
action: string

The action's unique identifier.

description: string

A brief description of the action.

8.8.1.1.1.3.1.31. DisassemblyLine

interface DisassemblyLine()
address: bigint | number | string

The memory location associated with this disassembly line.

@remarks Multiple disassembly lines can share the same address. In this case, the lines are intended to be displayed in the order they are provided.

numOpCodes: number

The number of opcodes disassembled for this line.

text: string

The text of the disassembly line. This will include the address and the bytes of the opcode(s).

8.8.1.1.1.3.1.32. FunctionInfo

interface FunctionInfo()
name: string

The function's name.

file: string

Path to the function's source file.

8.8.1.1.1.3.1.33. SourceLineInfo

interface SourceLineInfo()
line: number

The source line's number.

file: string

The source file's path.

8.8.1.1.1.3.1.34. DisassemblyResult

interface DisassemblyResult()
disassembly: DisassemblyLine[]

The list of disassembly lines.