x86/Linux: disable all-stop on top of non-stop
Markus reported that ASNS breaks target record-btrace. In particular, the gdb.btrace/multi-thread-step.exp test fails (both with BTS and PT tracing) with a crash in py-inferior.c: Program received signal SIGSEGV, Segmentation fault. 0x00000000006aa40d in add_thread_object (tp=0x27d32d0) at /users/mmetzger/team/gdb/git/gdb/python/py-inferior.c:337 337 entry->next = inf_obj->threads; My machine doesn't support BTS nor PT, so I missed this... Disabling ASNS temporarily on x86 until this is addressed. Tested on x86_64 Fedora 20. gdb/ChangeLog: 2015-08-18 Pedro Alves <palves@redhat.com> * linux-nat.c (linux_nat_always_non_stop_p): If the linux_ops target implements to_always_non_stop_p, call it. * x86-linux-nat.c (x86_linux_always_non_stop_p): New function. (x86_linux_create_target): Install it as to_always_non_stop_p method.
This commit is contained in:
parent
fe875424a0
commit
b2a3343990
|
@ -1,3 +1,11 @@
|
||||||
|
2015-08-18 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* linux-nat.c (linux_nat_always_non_stop_p): If the linux_ops
|
||||||
|
target implements to_always_non_stop_p, call it.
|
||||||
|
* x86-linux-nat.c (x86_linux_always_non_stop_p): New function.
|
||||||
|
(x86_linux_create_target): Install it as to_always_non_stop_p
|
||||||
|
method.
|
||||||
|
|
||||||
2015-08-17 Doug Evans <dje@google.com>
|
2015-08-17 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* ui-out.c (default_ui_out_impl): Add comment.
|
* ui-out.c (default_ui_out_impl): Add comment.
|
||||||
|
|
|
@ -4594,6 +4594,8 @@ linux_nat_supports_non_stop (struct target_ops *self)
|
||||||
static int
|
static int
|
||||||
linux_nat_always_non_stop_p (struct target_ops *self)
|
linux_nat_always_non_stop_p (struct target_ops *self)
|
||||||
{
|
{
|
||||||
|
if (linux_ops->to_always_non_stop_p != NULL)
|
||||||
|
return linux_ops->to_always_non_stop_p (linux_ops);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -357,6 +357,15 @@ x86_linux_get_thread_area (pid_t pid, void *addr, unsigned int *base_addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* to_always_non_stop_p implementation. */
|
||||||
|
|
||||||
|
static int
|
||||||
|
x86_linux_always_non_stop_p (struct target_ops *self)
|
||||||
|
{
|
||||||
|
/* Enabling this breaks the btrace target. */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Create an x86 GNU/Linux target. */
|
/* Create an x86 GNU/Linux target. */
|
||||||
|
|
||||||
struct target_ops *
|
struct target_ops *
|
||||||
|
@ -389,6 +398,8 @@ x86_linux_create_target (void)
|
||||||
t->to_read_btrace = x86_linux_read_btrace;
|
t->to_read_btrace = x86_linux_read_btrace;
|
||||||
t->to_btrace_conf = x86_linux_btrace_conf;
|
t->to_btrace_conf = x86_linux_btrace_conf;
|
||||||
|
|
||||||
|
t->to_always_non_stop_p = x86_linux_always_non_stop_p;
|
||||||
|
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue