diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2019-06-14 15:59:17 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2020-02-15 15:38:39 +0000 |
commit | 54814015148345c01c8878893daed7b429d2793c (patch) | |
tree | 9185fb686419ffdd080e27b83e917fec215e2d95 /src/target/armv8.c | |
parent | 1492a103db6174bd4d6994ea3487c096aef4560d (diff) | |
download | riscv-openocd-54814015148345c01c8878893daed7b429d2793c.zip riscv-openocd-54814015148345c01c8878893daed7b429d2793c.tar.gz riscv-openocd-54814015148345c01c8878893daed7b429d2793c.tar.bz2 |
armv8: check the core state to pass the correct arch to gdb
Commit 3799eded6761 ("target/aarch64: add support for
multi-architecture gdb") passes the constant string "aarch64" as
architecture to gdb. This is not working if the core is running
in 32 bits mode; gdb reports:
Truncated register 8 in remote 'g' packet
then closes the connection with OpenOCD.
Make the architecture string dependant from the current state of
the core.
Change-Id: I16e1614ea02ba29bf87f450b3dfe25c83c9a3612
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5234
Tested-by: jenkins
Reviewed-by: Muhammad Omair Javaid <omair.javaid@linaro.org>
Diffstat (limited to 'src/target/armv8.c')
-rw-r--r-- | src/target/armv8.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/target/armv8.c b/src/target/armv8.c index e736937..88b9320 100644 --- a/src/target/armv8.c +++ b/src/target/armv8.c @@ -1753,7 +1753,8 @@ const struct command_registration armv8_command_handlers[] = { const char *armv8_get_gdb_arch(struct target *target) { - return "aarch64"; + struct arm *arm = target_to_arm(target); + return arm->core_state == ARM_STATE_AARCH64 ? "aarch64" : "arm"; } int armv8_get_gdb_reg_list(struct target *target, |