diff options
-rw-r--r-- | gdb/aarch64-linux-nat.c | 3 | ||||
-rw-r--r-- | gdb/arm-linux-nat.c | 3 | ||||
-rw-r--r-- | gdb/mips-linux-nat.c | 4 | ||||
-rw-r--r-- | gdb/ppc-linux-nat.c | 3 | ||||
-rw-r--r-- | gdb/riscv-linux-nat.c | 3 | ||||
-rw-r--r-- | gdb/s390-linux-nat.c | 3 | ||||
-rw-r--r-- | gdb/x86-linux-nat.c | 3 |
7 files changed, 22 insertions, 0 deletions
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c index ecb2eeb..eeb9761 100644 --- a/gdb/aarch64-linux-nat.c +++ b/gdb/aarch64-linux-nat.c @@ -785,6 +785,9 @@ aarch64_linux_nat_target::read_description () gdb_byte regbuf[ARM_VFP3_REGS_SIZE]; struct iovec iovec; + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + tid = inferior_ptid.pid (); iovec.iov_base = regbuf; diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index ef3fa00..70c6bc6 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -531,6 +531,9 @@ ps_get_thread_area (struct ps_prochandle *ph, const struct target_desc * arm_linux_nat_target::read_description () { + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + CORE_ADDR arm_hwcap = linux_get_hwcap (); if (have_ptrace_getregset == TRIBOOL_UNKNOWN) diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 972b5db..8a7cc95 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -458,6 +458,10 @@ mips_linux_nat_target::read_description () if (have_dsp < 0) { + /* Assume no DSP if there is no inferior to inspect with ptrace. */ + if (inferior_ptid == null_ptid) + return _MIPS_SIM == _ABIO32 ? tdesc_mips_linux : tdesc_mips64_linux; + int tid = get_ptrace_pid (inferior_ptid); errno = 0; diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c index 55dcda9..d14aba6 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c @@ -1941,6 +1941,9 @@ ppc_linux_nat_target::auxv_parse (const gdb_byte **readptr, const struct target_desc * ppc_linux_nat_target::read_description () { + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + int tid = inferior_ptid.pid (); if (have_ptrace_getsetevrregs) diff --git a/gdb/riscv-linux-nat.c b/gdb/riscv-linux-nat.c index 8be4a5a..9492cb6 100644 --- a/gdb/riscv-linux-nat.c +++ b/gdb/riscv-linux-nat.c @@ -201,6 +201,9 @@ fill_fpregset (const struct regcache *regcache, prfpregset_t *fpregs, const struct target_desc * riscv_linux_nat_target::read_description () { + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + const struct riscv_gdbarch_features features = riscv_linux_read_features (inferior_ptid.pid ()); return riscv_lookup_target_description (features); diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c index fc3917d..8f54e9f 100644 --- a/gdb/s390-linux-nat.c +++ b/gdb/s390-linux-nat.c @@ -987,6 +987,9 @@ s390_linux_nat_target::auxv_parse (const gdb_byte **readptr, const struct target_desc * s390_linux_nat_target::read_description () { + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + int tid = inferior_ptid.pid (); have_regset_last_break diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c index fd21452..ca4eaf5 100644 --- a/gdb/x86-linux-nat.c +++ b/gdb/x86-linux-nat.c @@ -115,6 +115,9 @@ x86_linux_nat_target::read_description () static uint64_t xcr0; uint64_t xcr0_features_bits; + if (inferior_ptid == null_ptid) + return this->beneath ()->read_description (); + tid = inferior_ptid.pid (); #ifdef __x86_64__ |