diff --git a/gdb/aarch64-fbsd-nat.c b/gdb/aarch64-fbsd-nat.c index 709f5162ce0..38fb093f139 100644 --- a/gdb/aarch64-fbsd-nat.c +++ b/gdb/aarch64-fbsd-nat.c @@ -120,6 +120,9 @@ aarch64_fbsd_nat_target::store_registers (struct regcache *regcache, const struct target_desc * aarch64_fbsd_nat_target::read_description () { + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + aarch64_features features; features.tls = have_regset (inferior_ptid, NT_ARM_TLS)? 1 : 0; return aarch64_read_description (features); diff --git a/gdb/amd64-fbsd-nat.c b/gdb/amd64-fbsd-nat.c index bae267f230f..43e83ff2485 100644 --- a/gdb/amd64-fbsd-nat.c +++ b/gdb/amd64-fbsd-nat.c @@ -310,6 +310,9 @@ amd64_fbsd_nat_target::read_description () struct reg regs; int is64; + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + if (ptrace (PT_GETREGS, inferior_ptid.pid (), (PTRACE_TYPE_ARG3) ®s, 0) == -1) perror_with_name (_("Couldn't get registers")); diff --git a/gdb/arm-fbsd-nat.c b/gdb/arm-fbsd-nat.c index 5181281b27d..cf22fc6cce9 100644 --- a/gdb/arm-fbsd-nat.c +++ b/gdb/arm-fbsd-nat.c @@ -93,6 +93,9 @@ arm_fbsd_nat_target::read_description () const struct target_desc *desc; bool tls = false; + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + #ifdef PT_GETREGSET tls = have_regset (inferior_ptid, NT_ARM_TLS) != 0; #endif diff --git a/gdb/i386-fbsd-nat.c b/gdb/i386-fbsd-nat.c index 927771e8b20..a2255c3c26b 100644 --- a/gdb/i386-fbsd-nat.c +++ b/gdb/i386-fbsd-nat.c @@ -315,6 +315,9 @@ i386_fbsd_nat_target::read_description () #endif static int xmm_probed; + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + #ifdef PT_GETXSTATE_INFO if (!xsave_probed) {