diff options
Diffstat (limited to 'gdb/aarch64-linux-nat.c')
-rw-r--r-- | gdb/aarch64-linux-nat.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c index 2e6541f..725c632 100644 --- a/gdb/aarch64-linux-nat.c +++ b/gdb/aarch64-linux-nat.c @@ -1,6 +1,6 @@ /* Native-dependent code for GNU/Linux AArch64. - Copyright (C) 2011-2024 Free Software Foundation, Inc. + Copyright (C) 2011-2025 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GDB. @@ -496,12 +496,11 @@ fetch_tlsregs_from_thread (struct regcache *regcache) gdb_assert (regno != -1); gdb_assert (tdep->tls_register_count > 0); - uint64_t tpidrs[tdep->tls_register_count]; - memset(tpidrs, 0, sizeof(tpidrs)); + std::vector<uint64_t> tpidrs (tdep->tls_register_count); struct iovec iovec; - iovec.iov_base = tpidrs; - iovec.iov_len = sizeof (tpidrs); + iovec.iov_base = tpidrs.data (); + iovec.iov_len = tpidrs.size () * sizeof (tpidrs[0]); int tid = get_ptrace_pid (regcache->ptid ()); if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_TLS, &iovec) != 0) @@ -524,8 +523,7 @@ store_tlsregs_to_thread (struct regcache *regcache) gdb_assert (regno != -1); gdb_assert (tdep->tls_register_count > 0); - uint64_t tpidrs[tdep->tls_register_count]; - memset(tpidrs, 0, sizeof(tpidrs)); + std::vector<uint64_t> tpidrs (tdep->tls_register_count); for (int i = 0; i < tdep->tls_register_count; i++) { @@ -536,8 +534,8 @@ store_tlsregs_to_thread (struct regcache *regcache) } struct iovec iovec; - iovec.iov_base = &tpidrs; - iovec.iov_len = sizeof (tpidrs); + iovec.iov_base = tpidrs.data (); + iovec.iov_len = tpidrs.size () * sizeof (tpidrs[0]); int tid = get_ptrace_pid (regcache->ptid ()); if (ptrace (PTRACE_SETREGSET, tid, NT_ARM_TLS, &iovec) != 0) @@ -945,7 +943,7 @@ aarch64_linux_nat_target::stopped_data_address (CORE_ADDR *addr_p) kernel can potentially be tagged addresses. */ struct gdbarch *gdbarch = thread_architecture (inferior_ptid); const CORE_ADDR addr_trap - = gdbarch_remove_non_address_bits (gdbarch, (CORE_ADDR) siginfo.si_addr); + = aarch64_remove_non_address_bits (gdbarch, (CORE_ADDR) siginfo.si_addr); /* Check if the address matches any watched address. */ state = aarch64_get_debug_reg_state (inferior_ptid.pid ()); @@ -1070,9 +1068,7 @@ aarch64_linux_nat_target::is_address_tagged (gdbarch *gdbarch, CORE_ADDR address return gdbarch_tagged_address_p (gdbarch, address); } -void _initialize_aarch64_linux_nat (); -void -_initialize_aarch64_linux_nat () +INIT_GDB_FILE (aarch64_linux_nat) { aarch64_initialize_hw_point (); |