*-fbsd-nat: Handle null inferior in read_description.
Don't invoke ptrace in the target read_description method if there is not an active inferior to query via ptrace. Instead, use the default register set for the architecture. Previously the native target could report an error from a failed ptrace operation when fetching a tdesc without an attached process. For example on FreeBSD/amd64: (gdb) target native Done. Use the "run" command to start a process. (gdb) unset tdesc filename Couldn't get registers: Operation not permitted.
This commit is contained in:
parent
36b6b4594e
commit
97b6e0f6c8
4 changed files with 12 additions and 0 deletions
|
@ -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);
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue