Next: i386 Features, Previous: ARC Features, Up: Standard Target Features [Contents][Index]
The ‘org.gnu.gdb.arm.core’ feature is required for non-M-profile ARM targets. It must contain the following registers:
Extra registers are allowed in this feature, but they will not affect ROCGDB.
For M-profile targets (e.g. Cortex-M3), the ‘org.gnu.gdb.arm.core’ feature is replaced by ‘org.gnu.gdb.arm.m-profile’, and it is a required feature. It must contain the following registers:
Upon seeing this feature, ROCGDB will acknowledge that it is dealing with an M-profile target. This means ROCGDB will use hooks and configurations that are meaningful to M-profiles.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.fpa’ feature is obsolete and should not be advertised by debugging stubs anymore. It used to advertise registers for the old FPA architecture that has long been discontinued in toolchains.
It is kept in ROCGDB for backward compatibility purposes so older debugging stubs that don’t support XML target descriptions still work correctly. One such example is the KGDB debugging stub from Linux or BSD kernels.
The description below is for historical purposes only. This feature used to contain the following registers:
Also known as Helium, the M-profile Vector Extension is advertised via the optional ‘org.gnu.gdb.arm.m-profile-mve’ feature.
It must contain the following:
Bits 24 through 31 are reserved.
When this feature is available, ROCGDB will synthesize the ‘p0’ pseudo-register from ‘vpr’ contents.
This feature must only be advertised if the target is M-profile. Advertising this feature for targets that are not M-profile may cause ROCGDB to assume the target is M-profile when it isn’t.
If the ‘org.gnu.gdb.arm.vfp’ feature is available alongside the ‘org.gnu.gdb.arm.m-profile-mve’ feature, ROCGDB will synthesize the ‘q’ pseudo-registers from ‘d’ register contents.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The XScale ‘org.gnu.gdb.xscale.iwmmxt’ feature is optional. If present, it must contain the following:
The following registers are optional:
This feature should only be reported if the target is XScale.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.vfp’ feature is optional. If present, it should contain one of two possible sets of values depending on whether VFP version 2 or VFP version 3 is in use.
For VFP v2:
For VFP v3:
If this feature is available, ROCGDB will synthesize the single-precision floating-point registers from halves of the double-precision registers as pseudo-registers.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.neon’ feature is optional. It does not need to contain registers; it instructs ROCGDB to display the VFP double-precision registers as vectors and to synthesize the quad-precision registers from pairs of double-precision registers. If this feature is present, ‘org.gnu.gdb.arm.vfp’ must also be present and include 32 double-precision registers.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.m-profile-pacbti’ feature is optional, and acknowledges support for the ARMv8.1-m PACBTI extensions.
This feature doesn’t contain any required registers, and it only serves as a hint to ROCGDB that the debugging stub supports the ARMv8.1-m PACBTI extensions.
When ROCGDB sees this feature, it will track return address signing states and will decorate backtraces using the [PAC] marker, similar to AArch64’s PAC extension. See AArch64 PAC.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.m-system’ optional feature was introduced as a way to inform ROCGDB about additional system registers.
At the moment this feature must contain the following:
This feature must only be advertised for M-profile targets. When ROCGDB sees this feature, it will attempt to track the values of ‘msp’ and ‘psp’ across frames.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The ‘org.gnu.gdb.arm.secext’ optional feature was introduced so ROCGDB could better support the switching of stack pointers and secure states in the Security Extensions.
At the moment this feature must contain the following:
When ROCGDB sees this feature, it will attempt to track the values of all 4 stack pointers across secure state transitions, potentially improving unwinding when applications switch between security states.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
The optional ‘org.gnu.gdb.arm.tls’ feature contains TLS registers.
Currently it contains the following:
At the moment ROCGDB looks for this feature, but doesn’t do anything with it other than displaying it.
Extra registers are allowed in this feature, but they will not affect ROCGDB.
Next: i386 Features, Previous: ARC Features, Up: Standard Target Features [Contents][Index]